• ベストアンサー

Perlで指定のディレクトリ以下のファイル名を全て表示させるスクリプト

Perlで指定のディレクトリ以下のファイル名を全て表示させるスクリプトを考えておりますが、思いつきません。WindowsとLinuxの両方で利用たいです。 何かよいサンプルはありませんか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • masaboo
  • ベストアンサー率58% (7/12)
回答No.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)

noname#25358
noname#25358
回答No.1

sub printDir {  opendir(DIR, $_[0]);  @files = readdir(DIR);  close(DIR);  foreach(@files) {   if ( $_ eq '.' || $_ eq '..' ) { next; }   print "$_[0]/$_\n";   if ( -d $_ ) {    printDir( "$_[0]/$_" );   } }  こんな感じでどうでしょ。

関連するQ&A