求一款目录对比的工具

我现在有一个需求,想要对比两个目录的文件名,看看两个文件夹里的文件是不是一样。但是要忽略扩展名。

比如说一个文件夹里面是MP4文件,有几个文件夹,有几十个视频文件。然后统一转换成MP3,文件名一样,扩展名不同。

那转换完成后我想看看哪个文件没有转换完成。所以要忽略扩展名来对比。

所以请问有类似的工具吗?

换个思路,可以先把文件名列表复制出来,去掉扩展名,再用文本对比工具对比。

我感觉是不是可以用命令行输出到excel再对比

Beyond Compare

Compare files and folders using simple, powerful commands that focus on the differences you’re interested in and ignore those you’re not.

目录结构:
主目录:before文件夹,after文件夹,下面的py文件
before子目录:含mp4文件
after子目录:含mp3文件

运行结果:仅比较名称,输出before目录有而after目录无的东西

from pathlib2 import Path


def path_to_name(p: list):
    name_set = set()
    for pi in p:
        name_set.add(pi.stem)
    return name_set


p = Path(".")
before_set = path_to_name(list(p.glob("before\\*.mp4")))
after_set = path_to_name(list(p.glob("after\\*.mp3")))


print(before_set-after_set)

你这个要求大概目前就只有 Beyond Compare 能比较直观,快速的满足吧

点规则,在杂项里设置

完事

1 个赞

如果有使用Quicker,可以试下这个动作,刚随手写了一个。

1 个赞

1、在A文件夹上,使用everything查看其下所有文件,可导出csv文件。
2、在B文件夹上,使用everything查看其下所有文件,可导出csv文件。
3、将两个csv文件内容粘贴到excel中对比一下。

免費的WinMerge也可以。

1 个赞

用everything,非常简单。
把两个文件夹的名字输入到搜索栏,中间用符号 | 隔开,表示或者。
ctrl+1,以名称排序。
ctrl+shift+3,以中图标显示。

调节窗口大小,显示偶数列。

一目了然了,现在~
每当有错位发生,说明那里存在未完成的文件。

beyond compare收费,于是我就用这个了.

1 个赞

试了下 Beyond Compare 可以做到,在「规则」-「比较」中把「按不同的扩展名对齐文件名」勾上就行了。我用的是 4.2.6 版本,不确定最新版本的菜单名称是否有变化了。

这个例子是不是只能将123.mp3和123.mp4视为等同?如果是123.aac就不适用了?

我猜写成 *.{mp3, aac} 应该是可以的

用了这么久 BeyondCompare,现在才知道有规则的项……
一直都只用来对比文件夹结构和同步文件了,浪费了

可以添加多条规则
你再添加一条*.mp3=*.aac就可以了啊

1 个赞

有没有忽略后缀名的选项?

有。