如何比較兩個文件是否同樣?是兩個文件,兩個文件,兩個文件,這裏是基於二進制比較的。 優化
太簡單了,首先比較文件大小,大小不同必定不同。 spa
若是大小同樣,就打開對比字節流,實現多是一個循環,每次讀取 8K 字節,而後按順序對比,只要有不一樣就返回不一樣,直到所有比較完了都沒有不一樣,那就是相同了。 .net
好簡單啊……不如來點逼格?UMU 看到有人是對兩個文件取了 MD5 hash,而後比較 hash 是否相等…… blog
開噴! 教程
一、MD5 有碰撞問題……有可能不一樣的文件,hash 出來是同樣的,即存在誤判的可能。 get
二、這效率會耗在計算 hash 上,事實上若是文件不同,很可能不須要讀取整個文件就能夠發現不一樣的,而算 hash 是必定要把文件都讀完的。 hash
總之,咳咳,仍是用前面的方法好,hash 的方式適合用於文件不少,不少,不少,每兩個之間都要對比的狀況,請參考《[UMU WSH 教程](44) WII 應用實例 - 查找重複文件》:http://my.oschina.net/umu618/blog/133901。只有兩個,兩個,兩個對比的狀況,請不要裝逼,就直接對比,直接對比,直接對比。 效率
裝逼和優化都須要謹慎! 循環