读书人

大家伙儿有没有好一点的比较两个文件是

发布时间: 2013-11-12 12:10:37 作者: rapoo

大家有没有好一点的比较两个文件是否相同的想法呢?
不知道大家有没有遇到过这样的问题:判断两个文件是否一样,这里的一样仅指文件的二进制代码一样。
一般的想法是将文件打开读取里面二进制代码来一一比较,但是文件如果太大的话,这样做是很慢的。所以请教一下论坛的高手们,有没有什么更好的想法或方法呢?最好能写个SDK的DEMO,感谢大家! 算法 二进制 sdk
[解决办法]
不太清楚你想比较什么,改动之处,还是是否被修改过?

获取CRC、MD5对比即可

如果是要具体到被改动的地方,可以参考UE的工具,用内存映射文件去做,不要new文件大小
[解决办法]
随机捡取几个点,每个点读取1K左右的数据,进行比对。不放心的话只能全部对比了。
[解决办法]
如果要保存100%一样, 还管你用哪种算法, 那肯定都需要遍历两个文件一次的.

当然, 按字节一个一个判断是否相等, 那肯定效率不高.
可以使用比较可靠的算法 MD5可以, 但不是完全保证100%, 完全有可能两个文件不同,而算出相同的MD5来.

完全100%的相同, 可以使用 按4字节比较, 还可以按8字节比较, 如果支持媒体指令, 那效率又可以更提高.
[解决办法]
可以用DOS调用的命令:
//C:\\123.txt C:\\321.txt是两个文件的全路径
system("fc /b C:\\123.txt C:\\321.txt");

读书人网 >VC/MFC

热点推荐