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

标签 c# file comparison

<分区>

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

我本能的想法是用一个全局哈希表或其他一些数据结构来保存我找到的每个文件;然后检查每个后续文件以确定它是否在文件的“主”列表中。显然,我认为这不会非常有效,而且“必须有更好的方法!”一直在我脑海里响起。

任何有关处理这种情况的更好方法的建议都将不胜感激。

最佳答案

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

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

关于C#,识别目录数组中重复文件的最快(最好?)方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2814963/

相关文章:

php - 爆炸功能无法正常工作

javascript - 比较两个数组的元素

c# - 绑定(bind)到以编程方式设置的 DataContext

C# 和动态单选按钮列表 |提交时的单选按钮值不正确

c# - "Invalid managed/unmanaged type combination."是什么意思?

android - 以编程方式从设备中删除图像文件

c# - 无法对一个类型多次调用 Swap.AllInstances()

file - Spring MVC 填充下拉列表的最佳方法 - 属性文件?

java - 日期比较不起作用

python - 构造一个大于任何字符串的对象