Rubyの使用中にハッシュアルゴリズムが必要です。 私の状況では、ファイルの内容を比較しています。私はMD5を使用していましたが、ファイル名も調べます(とにかく思われます)。私は簡単に実装することができるアルゴリズムがありますか、またはゼロから書き込む必要がありますか?Rubyハッシュアルゴリズム
答えて
FileUtils.compare_file
を使用してください。
require 'fileutils'
FileUtils.compare_file('somefile', 'somefile') #=> true
なぜ私はファイル名を比較していると思いますか?
require "digest"
Digest::MD5.hexdigest(File.read('file1'))
=> "60b725f10c9c85c70d97880dfe8191b3"
Digest::MD5.hexdigest(File.read('file2'))
=> "60b725f10c9c85c70d97880dfe8191b3"
異なるチェックサムを取得するにはどうすればよいですか?
本当ですか?私はFileUtils.cpを使いました。それは本当に私にも意味をなさない。 – avatarmonkeykirby
@avatarmonkeykirbyどのようにcpを意味しますか? 'compare_file'はこれらのファイルに対してもtrueを返します。たぶん問題のファイル_are_ different(空白など...) – Slartibartfast
@avatarmonkeykirby:そのコードを質問に貼り付ける必要があります。 – tokland
これの実装を見ると、2つのファイルストリームをブロック単位で比較し、ブロックが一致しなくなったらすぐに停止します。興味深い方法は、以前はそれを知らなかった。 –