よたらぼ
自分の興味の赴くままにIT技術系のネタを取りとめもなくメモっています。
Ruby言語やLinuxのネタが多いです。

May 19, 2006 [おもひで]

[Ruby] File.ctimeとFile.mtimeの件

結局、なかださんのパッチを取り込まさせて頂きました。artonさん、なかださん、ご助言ありがとうございました。

[Ruby] File.ctimeとFile.mtimeの件(2)

環境によってctime < mtimeの時もあれば ctime > mtimeの時もある、ということなので、ファイルの更新時刻を取得する目的の場合に、この2つのままではちょっと使いづらいし誤解の元にもなると思った。

というのも、今回の件もそうだったけど、ファイルが生成されたのだろうが、ファイルの内容が更新されたのだろうが、新しいファイルに置き換えられたのだろうが、属性が変更されたのだろうが、それはひとえに更新された、っていうひとまとまりの考え方の方が割と普遍的で、使いやすいのではなかろうか。

ということで以下のようなメソッドを考えてみた。

class File
  class Stat
    def last_modified
      [mtime, ctime].max
    end
  end
  def self.last_modified(filename)
    File.stat(filename).last_modified
  end
end
 
p File.last_modified("foo.rb")

って、まぁ、今回は(Rubyのコアライブラリに手を入れるのは避けたいから)使わなかったけどね。


編集