【发布时间】:2010-12-14 00:50:27
【问题描述】:
我遇到了这段代码http://support.microsoft.com/kb/320348,这让我想知道比较两个文件以确定它们是否不同的最佳方法是什么。
主要思想是优化我的程序,该程序需要验证任何文件是否相等,以创建已更改文件和/或要删除/创建的文件的列表。
目前我正在比较文件的大小,如果它们匹配,我将进入 2 个文件的 md5 校验和,但是在查看了在这个问题开头链接的代码之后,我想知道是否真的值得使用它来创建 2 个文件的校验和(基本上是在你获得所有字节之后)?
我还应该进行哪些其他验证以减少检查每个文件的工作量?
【问题讨论】:
-
我认为这在很大程度上取决于你所说的平等。您要测试文件中文本的相等性还是实际字节数?文件的内容是什么?空格重要吗(文本相等)? MD5 校验和会在行尾找到 2 个空格和 1 个空格之间的差异,而简单的文本比较可能不会。
-
MD5 需要完整读取两个文件,然后进行哈希处理,这对于大文件来说可能很耗时。
-
这就是为什么我想知道这个问题,而 Aliostad 和 Anon 提出了我想知道的观点。
标签: c# compare benchmarking checksum