ファイル検索

指定フォルダ以下のファイルを列挙する (更新時刻順にソート)

lesson005.rb


def putsDir(path, h)
if FileTest.directory?(path)
Dir.open(path) do |dir|
dir.each do |name|
next if name == "." # 自分
next if name == ".." # 親

putsDir path + "/" + name, h
end
end
else
h[path.gsub(/\//, "\\")] = File.mtime(path).strftime("%Y/%m/%d %H:%M:%S")
end
end

h = Hash.new
putsDir(ARGV[0], h)
h = h.sort_by { |key, value| value }
h.each do |key, value|
puts "#{value} #{key}"
end

実行結果

C:\>ruby c:\study\ruby\chapter005\lesson005.rb c:\study\ruby
2008/07/03 12:29:53 c:\study\ruby\chapter001\lesson001.rb
2008/07/03 12:29:56 c:\study\ruby\chapter001\lesson002.rb
2008/07/03 12:30:40 c:\study\ruby\chapter001\lesson003.rb
2008/07/03 12:31:50 c:\study\ruby\chapter001\lesson004.rb
2008/07/03 12:32:39 c:\study\ruby\chapter001\lesson005.rb
2008/07/03 12:33:36 c:\study\ruby\chapter001\lesson006.rb
2008/07/03 12:34:38 c:\study\ruby\chapter001\lesson007.rb
2008/07/03 12:35:19 c:\study\ruby\chapter001\lesson008.rb
2008/07/03 12:35:54 c:\study\ruby\chapter001\lesson009.rb
2008/07/03 12:36:31 c:\study\ruby\chapter001\lesson010.rb
2008/07/03 15:01:59 c:\study\ruby\chapter002\lesson001.rb
2008/07/03 15:14:33 c:\study\ruby\chapter002\lesson002.rb
2008/07/03 15:14:39 c:\study\ruby\chapter002\lesson003.rb
2008/07/05 11:55:18 c:\study\ruby\chapter002\lesson005.rb
2008/07/05 11:55:26 c:\study\ruby\chapter002\ruby.bat
2008/07/05 11:55:37 c:\study\ruby\chapter002\lesson004.rb
2008/07/07 23:58:47 c:\study\ruby\chapter003\lesson001.rb
2008/07/08 00:15:52 c:\study\ruby\chapter003\lesson002.rb
2008/07/08 09:55:48 c:\study\ruby\chapter003\lesson003.rb
2008/07/08 13:21:53 c:\study\ruby\chapter003\lesson004.rb
2008/07/08 13:37:34 c:\study\ruby\chapter003\lesson005.rb
2008/07/08 13:37:54 c:\study\ruby\chapter001\test.txt
2008/07/08 13:37:54 c:\study\ruby\chapter004\test.txt
2008/07/08 13:57:34 c:\study\ruby\chapter003\lesson006.rb
2008/07/08 14:01:59 c:\study\ruby\chapter003\ruby.bat
2008/07/09 13:59:31 c:\study\ruby\chapter004\lesson004.rb
2008/07/10 10:21:41 c:\study\ruby\chapter004\lesson001.rb
2008/07/10 11:44:02 c:\study\ruby\chapter004\lesson006.rb
2008/07/17 13:46:42 c:\study\ruby\chapter001\ruby.bat
2008/07/17 13:51:42 c:\study\ruby\chapter001\lesson011.rb
2008/07/24 15:44:41 c:\study\ruby\chapter004\lesson007.rb
2008/07/24 15:44:49 c:\study\ruby\chapter004\lesson008.rb
2008/07/24 15:50:34 c:\study\ruby\chapter004\lesson009.rb
2008/07/24 15:56:01 c:\study\ruby\chapter004\lesson010.rb
2008/07/24 15:56:03 c:\study\ruby\chapter004\lesson011.rb
2008/07/24 15:59:11 c:\study\ruby\chapter004\ruby.bat
2008/07/29 16:00:03 c:\study\ruby\chapter005\lesson002.rb
2008/07/29 16:00:36 c:\study\ruby\chapter005\lesson001.rb
2008/07/29 16:33:31 c:\study\ruby\chapter005\lesson003.rb
2008/07/29 16:34:01 c:\study\ruby\chapter005\ruby.bat
2008/07/30 09:43:36 c:\study\ruby\chapter005\lesson004.rb
2008/07/30 09:58:06 c:\study\ruby\chapter005\lesson005.rb