perl语言,window下,如何实现,遍历整个文件夹,将该文件夹下后缀名为.log的所有文件的文件路径

输出到一个txt文件列表中,请各位大侠告诉下代码实现,非常感谢!

第1个回答  2012-02-08
前提,你windows下装了perl环境。
代码:test.pl 'c:\usrdirctory' 'd:\out.txt'
两个参数分别为:你要遍历的目录路径;你要保存有用信息的文件路径。
如果不方便用命令行调用的话,就写死在下面的$dir,$dst后面。
例如 $dir = 'c:\usrdirctory';
#!/usr/bin/perl
my $dir = $ARGV[0];
my $dst = $ARGV[1];

$dst ||= "temp_log.txt";

if (!-d $dir) {
print "$dir is not a valid directory!\n";
exit(-1);
}
if (!opendir DIR , $dir){
print "cannot open dir, $dir\n";
exit(-1);
}
else{
foreach (readdir DIR) {
if ($_ =~ /\.log$/) {
print $_,"\n";
$out .= "$_\n";
}
}
closedir DIR;
}

if (!open FILE,">$dst"){
print "open file,$dst failed!\n";
exit(-1);
}
else{
print FILE $out;
close FILE;
}

print "Done!\n";
exit(0);