Dir#glob結果の利用
p "===== unsorted ==========" Dir.glob("**"){|f| p f } p "===== sorted ==========" Dir.glob("**").sort{|lhs, rhs| File.mtime(lhs) <=> File.mtime(rhs)}.each{|f| p f }
結果
$ ../test.rb "===== unsorted ==========" "a.txt" "b.txt" "c.txt" "===== sorted ==========" "b.txt" "c.txt" "a.txt" $ ls -l total 3 -rw-r--r-- 1 4 Aug 28 00:19 a.txt -rw-r--r-- 1 4 Aug 28 00:17 b.txt -rw-r--r-- 1 4 Aug 28 00:18 c.txt
globの結果は名前順らしいので、時間順に処理したいときにはsortを挟む。
てっきりsystem("ls -t -1").each とかやるのかと思ったよ。