我看到这段代码 http://support.microsoft.com/kb/320348这让我想知道比较 2 个文件以确定它们是否不同的最佳方法是什么。
主要思想是优化我的程序,该程序需要验证任何文件是否相等,以创建已更改文件和/或要删除/创建的文件的列表。
目前我正在比较文件的大小,如果它们匹配我将进入这 2 个文件的 md5 校验和,但是在查看了这个问题开头链接的代码之后,我想知道它是否真的值得使用它来创建 2 个文件的校验和(这基本上是在您获得所有字节之后)?
我还应该做哪些其他验证以减少检查每个文件的工作量?
最佳答案
将两个文件读入一个针对读取优化的小缓冲区(4K 或 8K),然后比较针对优化的内存中的缓冲区(逐字节) em>比较。
这将为您提供所有情况下的最佳性能(差异出现在开始、中间或结束处)。
当然,第一步是检查文件长度是否不同,如果是这样,文件确实不同..
关于c# - 逐字节比较文件还是读取所有字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4434931/