perl实现遍历文件夹

perl实现遍历文件夹

perl实现遍历文件夹
请教高手:
在windows 环境下,如何实现对一个深层文件夹里的文件进行遍历,并把文件收集到一个文件夹中。我写了一个小程序,只能实现两层,也试过其他方法,都不理想,谢谢大家,请指教。
#!perl
my $dir = "chineseypage";#这是我的工作目录;
my $i =1000;
opendir DIR, $dir or die "Cannot open $dir: $!";#打开工作目录;

while (my $name = readdir DIR) {
next if $name =~ /^\.\./; #跳过点文件
my @htm_files = glob "chineseypage\\$name\\*.*";#取指定目录中的文件名,并放入数组;
foreach my $args (@htm_files){
if($args !~ /\.htm|\.html$/igs){
unlink $args;
} else {
my $newname = $args;
$newname =~ s/.+?[\.htm|\.html]$/\.htm/igs;
$newname = "chinapage".$i.$newname;
$i +=1;
rename $args,"china\\$newname";#移动文件到指定目录;
print "$newname\n";#输出测试;
}
}
rmdir "chineseypage\\$name";#删除空目录;
}
乞求大家的帮忙
怎么没人回复呢?[CCB]10[/CCB]
建议楼主使用File::Find模.
建议楼主使用File::Find模块进行操作,这个模块可是把所有你所要的目录下的各级文件名及文件夹名全部获取出来。建议楼主参照模块文档写下,很简单的![CCB]1[/CCB]
建议楼主使用File::Find模块进行操作,这个模块可是把所有你所要的目录下的
嗯,好知道了,谢谢
如果遍历了文件夹,需要修.
如果遍历了文件夹,需要修改特殊后缀的文件名称,比如把.txt改为.xyz,应该怎么操作呢?

目前自己只知道在dos里批处理命令里的
FOR /R [[drive:]path] %variable IN (set) DO command [command-parameters]
就可以。