Windowsでファイルを読み取るためのRubymd5メソッド



Ruby Md5 Method Reading Files Under Windows



最近、プロジェクトはファイルのバッチのmd5値を読み取る必要があり、それはrubyによって提供されるAPIによって生成されます。

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

次にQAに送信され、慎重なQAがWinMD5ツールを使用してファイルを比較し、生成されたMD5値が実際には異なることがわかりました。その後、Linuxでの読み取りは問題ありませんが、Windowsでは問題がないことがわかりました。理由は次の2つの形式があるためです。 Windowsの下のファイル、テキストファイルとバイナリファイル、およびMD5ツールの場合、エンコードするバイナリファイルを読み取る必要があるため、上記のコードを次のように変更する必要があります。



checksum = Digest::MD5.hexdigest(File.open(file,'rb') ) # 終わらせる。 。 。