[Perl]讀取當前目錄下的全部文件,包括子目錄下的文件

直接上代碼,全部文件存在 my @files中less

不怕文件夾中帶空格, glob會有此問題用!this

<!-- lang: perl -->
my $basedir = '.';
my $d;
my @files = ();
my @dirs = ($basedir);
die "error $basedir: $!" unless(-d $basedir);    
while(@dirs){
   $d = $dirs[0];
   $d .= "/" unless($d=~/\/$/);

   opendir folder, $d || die "Can not open this directory";
   my @filelist = readdir folder; 
   closedir folder;
   my $f;
   foreach (@filelist) {
      print $_."\n";
      $f = $d.$_;

      #need to remove . and ..
      if($_ eq "." || $_ eq "..")
      {
          #print "ignore"."\n";
          next;
      }

      push(@dirs, $f) if(-d $f) ;
      push(@files,$f)if(-f $f);
    }
   shift @dirs;
}
相關文章
相關標籤/搜索