【Ruby3.x】File::identical?()メソッドの使い方
identical?メソッドの使い方について、初心者にもわかりやすく解説します。
作成日: 更新日:
基本的な使い方
identical?メソッドは、2つのファイルパスが示すファイルが、ファイルシステム上で物理的に同一のファイルであるかどうかを判定するメソッドです。これは、単にファイルの内容が同じであるかどうかを比較するのではなく、ハードディスク上の同じファイル実体を指しているかを検査します。
例えば、あるファイルを別の場所にハードリンクした場合、それらはファイルシステム上では同じ実体であるため、identical?メソッドはtrueを返します。しかし、ファイルの内容が全く同じであったとしても、別々にコピーされたファイルや、シンボリックリンクによって参照されているファイルの場合、それぞれが異なるファイル実体であるため、通常はfalseを返します。
このメソッドは、引数として比較したい2つのファイルパスを文字列で受け取り、それらが同一のファイルであればtrueを、そうでなければfalseを真偽値として返します。ファイルの重複チェックや、システム内で特定のファイルが意図せず複製されていないかを確認する際など、ファイルの物理的な同一性を厳密に確認したい場面で非常に役立ちます。
構文(syntax)
1require 'tempfile' 2 3file1 = Tempfile.new('ruby_identical_test_1') 4file2 = Tempfile.new('ruby_identical_test_2') 5 6puts File.identical?(file1.path, file1.path) 7puts File.identical?(file1.path, file2.path) 8 9file1.close! 10file2.close!
引数(parameters)
req, req
- path1: 比較する1つ目のファイルのパス
- path2: 比較する2つ目のファイルのパス
戻り値(return)
Boolean
2つのファイルの内容が完全に一致する場合に真(true)を、そうでなければ偽(false)を返します。