1. 程式人生 > >ruby在windows下讀取檔案的md5方法

ruby在windows下讀取檔案的md5方法

最近專案需要讀取一批檔案的md5值,就用ruby提供的api生成

checksum =  Digest::MD5.hexdigest(File.read(filename)} )

 然後提交給QA,細心的QA用WinMD5工具對比了一個檔案發現生成的MD5值竟然不同,後來發現這樣讀在linux下沒問題,但在windows下就不行,原因是windows下檔案有兩種形式,文字檔案和二進位制檔案,而對於MD5工具是要求讀取二進位制檔案來編碼的,所以必須把上面的程式碼改為

checksum =  Digest::MD5.hexdigest(File.open(file,"rb"){|fs| fs.read} )  #區別
 搞定。。。