2011-12-21 7 views
0

Rubyの使用中にハッシュアルゴリズムが必要です。 私の状況では、ファイルの内容を比較しています。私はMD5を使用していましたが、ファイル名も調べます(とにかく思われます)。私は簡単に実装することができるアルゴリズムがありますか、またはゼロから書き込む必要がありますか?Rubyハッシュアルゴリズム

答えて

2

FileUtils.compare_fileを使用してください。

require 'fileutils' 
FileUtils.compare_file('somefile', 'somefile') #=> true 
+1

これの実装を見ると、2つのファイルストリームをブロック単位で比較し、ブロックが一致しなくなったらすぐに停止します。興味深い方法は、以前はそれを知らなかった。 –

2

なぜ私はファイル名を比較していると思いますか?

require "digest" 
Digest::MD5.hexdigest(File.read('file1')) 
=> "60b725f10c9c85c70d97880dfe8191b3" 
Digest::MD5.hexdigest(File.read('file2')) 
=> "60b725f10c9c85c70d97880dfe8191b3" 

異なるチェックサムを取得するにはどうすればよいですか?

+0

本当ですか?私はFileUtils.cpを使いました。それは本当に私にも意味をなさない。 – avatarmonkeykirby

+0

@avatarmonkeykirbyどのようにcpを意味しますか? 'compare_file'はこれらのファイルに対してもtrueを返します。たぶん問題のファイル_are_ different(空白など...) – Slartibartfast

+0

@avatarmonkeykirby:そのコードを質問に貼り付ける必要があります。 – tokland

関連する問題