直接上代码,所有文件存在 my @files中
不怕文件夹中带空格, glob会有此问题用!
<!-- 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;
}