C#,最快(最好?)识别目录数组中的重复文件的方法

Nat*_*222 4 c# comparison file

我想递归几个目录,并在n个目录之间找到重复的文件.

我在这方面的下意识是拥有一个全局哈希表或一些其他数据结构来保存我找到的每个文件; 然后检查每个后续文件以确定它是否在"主"文件列表中.显然,我不认为这会非常有效,而且"必须有更好的方法!" 我的大脑里一直响个不停.

任何关于更好地处理这种情况的建议都将受到赞赏.

Joh*_*ica 15

您可以通过首先比较文件大小来避免散列.如果您从未找到具有相同大小的文件,则无需对其进行哈希处理.只有在找到具有相同大小的另一个文件时才对文件进行哈希处理,然后对它们进行哈希处理.

这应该比盲目地散列每个文件快得多,尽管实现这种双层检查会更复杂.