不要求内容,只找出文件名相同就行。
比如:
a
|-- 1.txt
|-- 2
|-- 1.txt
b
|-- 1.txt
|-- 3
|-- 1.txt
a/1.txt 与 b/1.txt 满足条件
a/1.txt 与 b/3/1.txt 不满足条件
不知道我说清楚了没有,只找出路径结构与文件名相同的。
谢谢
补充:
感谢各位的回复,我有个困扰: 复制或移动文件(夹)时,遇到重名文件怎么办?
1,停下来询问用户,如windows的默认复制逻辑,但如果用户去干别的了,回来一看……
2,事先设置好处理方式,如fastcopy、teraCopy,但问多了令人烦躁
fastcopy 无法重命名,日志无法记录跳过的文件,移动跳过功能需要购买
teraCopy 速度不如fastcopy,但功能齐全,不过日志是SQLite3格式,不好用
我的理想是: 无事别问,默认跳过重名文件并记录下来,完成任务后询问重名文件的处理方式,可以全局处理也可以部分处理。
我找不到这样的软件,貌似只能自己写了
让 chatgpt 帮你写了个脚本,不保证没bug
import os
import sys
def cache_file_paths(directory):
file_paths = []
for root, dirs, files in os.walk(directory):
for file in files:
file_path = os.path.relpath(os.path.join(root, file), directory)
file_paths.append(file_path)
return file_paths
def compare_file_paths(dir1, dir2):
file_paths1 = cache_file_paths(dir1)
file_paths2 = cache_file_paths(dir2)
for path1 in file_paths1:
for path2 in file_paths2:
if path1 == path2:
print(path1)
if __name__ == '__main__':
if len(sys.argv) != 3:
print('请提供两个文件路径作为参数')
sys.exit(1)
dir1 = sys.argv[1]
dir2 = sys.argv[2]
compare_file_paths(dir1, dir2)
在命令行中运行这个脚本,并提供两个文件路径作为参数。例如:
python script.py path1 path2
cmd 下执行命令:
forfiles /p "DIR1" /s /c "cmd /c if @isdir==FALSE if exist \"DIR2\@relpath\" echo @relpath"