【发布时间】:2012-02-27 12:02:29
【问题描述】:
我有一个比较两个文件的函数,看看它们是否相同。它逐字节读取文件并检查它们是否相同。
我现在遇到的问题是,对于大文件,此功能需要很长时间。
检查文件是否相同的更好、更快的方法是什么?
【问题讨论】:
-
@Yavar -- 比较文件需要读取所有数据以及单个指令比较。散列数据需要读取所有数据以及更复杂的数学运算。我错过了什么表明哈希方法会更快(除非您假设哈希是预先存在的)?我一定遗漏了一些东西,因为有几位海报建议使用哈希。我相信除非哈希预先存在,否则这比 memcmp 慢。
-
绝对@mah +1 为您的评论。
-
在检查通过网络下载的文件是否在传输过程中损坏时,散列是一个很好的解决方案。您在服务器上生成一个哈希值,并将其与客户端下载文件的哈希值进行比较。在通过网络传输文件的情况下,这很有意义。比较磁盘上漂亮的两个文件是没有意义的。
-
Hashinh 如果您有 3 个以上的文件并且您正在寻找相同的文件对。