- ベストアンサー
Perlで指定のディレクトリ以下のファイル名を全て表示させるスクリプト
Perlで指定のディレクトリ以下のファイル名を全て表示させるスクリプトを考えておりますが、思いつきません。WindowsとLinuxの両方で利用たいです。 何かよいサンプルはありませんか? よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
指定ディレクトリ以下を再帰的に処理するならこんなのは どうでしょう sub dirtree { my $path = shift; opendir(DIR, $path); my @dirs = grep !/^\.\.*$/, readdir(DIR); closedir(DIR); for(my $i=0; $i<@dirs; $i++){ my $fullname = $path . '/' . $dirs[$i]; if(-d $fullname){ $dirs[$i] = ' ' . $fullname; # ソート用にディレクトリを' 'でマーク }else{ $dirs[$i] = $fullname; } } for my $fullname (sort @dirs){ if($fullname =~ s/^ //){ dirtree($fullname); }else{ #****************************** # ここに目的の処理を記述 #****************************** if($fullname =~ /\.html$/){ print "$fullname\n"; } } } }
その他の回答 (1)
sub printDir { opendir(DIR, $_[0]); @files = readdir(DIR); close(DIR); foreach(@files) { if ( $_ eq '.' || $_ eq '..' ) { next; } print "$_[0]/$_\n"; if ( -d $_ ) { printDir( "$_[0]/$_" ); } } こんな感じでどうでしょ。