遍历某个目录下的所有子目录内文件

遍历某个目录下的所有子目录内文件

遍历某个目录下的所有子目录内文件
我知道在某个目录下可以通过glob来遍历文件,

想请教下各位,我有个目录,下面有若干子目录,子目录下面又可能还有目录,

我想问这种情况下,怎么来遍历整个大目录下,所有子目录里的.txt文件




   

opendir(DIR, $dir);--f.
opendir(DIR, $dir);
foreach $file (@files = readdir(DIR)) {
#用正则判断是是目录还是文件就成了.
}
用Perl随版本附带的file::.
用Perl随版本附带的file::find也成
http://www.annocpan.org/~NWCLARK/perl-5.8.8/lib/File/Find.pm
[quote]回复给 jackycheng.
[quote]回复给 jackycheng : opendir(DIR, $dir);--f....[/quote]

不是很明白如何通过Regular Expression来判断是目录还是文件。

我最近刚写了段代码完成相同的功能。我的代码大致是这样的:

sub ReadDir
{
my ($dir) = @_;
opendir(DIR, $dir);
foreach my $element (readdir(DIR))
{
if ('.' eq $element || '..' eq $element) { next; } # 跳过“.”和“..”两个缺省的目录

my $full_path = "$dir/$element";

if (-d $full_path) # 用File Test判断是否是目录
{
&ReadDir($full_path); # 递归
}
else
{
# 不是目录,可在此处根据文件扩展名判断".txt"文件
}
}
closedir(DIR);
}

当然,如果已经有现成的模块,还是应该用那个模块的,那样更简洁,更通用。我也是看了这个帖子才知道有这么个模块的。我的代码就只能在UNIX上运行。