Chinaunix
标题:
新手请教perl中如何遍历目录树
[打印本页]
作者:
wjlabcwjl
时间:
2011-06-20 22:45
标题:
新手请教perl中如何遍历目录树
如题,就是给定一个目录,列出这个目录及其所有子目录中的文件。
谢谢先~
作者:
iamlimeng
时间:
2011-06-20 23:00
用递归,几行代码足够
作者:
zhlong8
时间:
2011-06-20 23:35
perl -MFile::Find -E "find sub {say $File::Find::dir , '/', $_ }, some_dir"
作者:
tima123
时间:
2011-06-20 23:52
一段WEB应用共你参考,列出所在脚本当前目录及子目录所有files
$SET{my_path} = ($0 =~ /^(.+)[\/\\]/)[0] || '.';
$SET{my_path} =~ s/\\/\//g;
Dir_tree($SET{my_path});
sub Dir_tree {
my @files =Readdir_to_array("$_[0]");
foreach (@files) {
next if ($_ eq".")||($_ eq"..");
unless(-d"$_[0]/$_"){
print "$_[0]/$_\n";
}
else {
&Dir_tree("$_[0]/$_");
}
}
return;
}
sub Readdir_to_array {
opendir( FILESS, "$_[0]" );
my @lines = readdir(FILESS);
closedir(FILESS);
return (@lines);
}
作者:
wjlabcwjl
时间:
2011-06-21 04:46
本帖最后由 wjlabcwjl 于 2011-06-21 05:45 编辑
sub listfile{
my $dir = shift @_;
opendir DH, $dir;
foreach my $file (readdir DH){
next if $file eq "." or $file eq "..";
$file = "$dir/$file";
if(-d $file){
&listfile($file);
}
else{
print $file;
}
}
return 1;
}
&listfile("目录");
复制代码
用递归函数大概就是这样了吧
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2