階層が深かったり複雑だと大変よね。Find.findを使って探してみましょう。
たとえば、以下は最も新しいファイルを探してくるのよ。
require 'find' =begin 指定ディレクトリで最も新しいタイムスタンプを探す。 =end class HStamper def initialize self.ini end def ini @newer = Time.local("1967/1/1") @newfile = nil end def search(dir) Find.find(dir) do |file| if File.file?(file) == true m = File.stat(file).mtime if m > @newer @newer = m.clone @newfile = file.clone end end end p newer,newfile @newer end def newer @newer end def newfile @newfile end end
使い方は、こう。
c = HStamper.new c.search("dir名") p c