ファイル検索

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

lesson005.pl


%h;
putsDir($ARGV[0]);
foreach (sort {$h{$a} cmp $h{$b}} keys(%h))
{
print $h{$_}." ".$_."\n";
}

sub putsDir
{
my($path) = @_;
if (-d $path)
{
opendir HANDLE, $path;
my @fileList = readdir HANDLE;

foreach $file (@fileList)
{
next if ($file eq "."); # 自分
next if ($file eq ".."); # 親

putsDir("$path\\$file");
}

closedir HANDLE, $path;
}
else
{
@fileInfo = stat $path;
($s, $n, $h, $d, $m, $y) = localtime($fileInfo[9]);
$y += 1900;
$m += 1;
$mtime = sprintf("%.4d\/%.2d\/%.2d %.2d:%.2d:%.2d", $y, $m, $d, $h, $n, $s);
$h{$path} = $mtime;
}
}

実行結果

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