我想搜索一个目录树,删除任何超过60天的目录。
opendir( my $DH, $DIR ) or die "Error opening $DIR: $!";
my @list = grep { ! /^\.{1,2}$/ } readdir $DH;
@list = map { $DIR . '\\' . $_ } @list;
for ( @list ) {
$path = $_;
opendir( my $DH2, $_ ) or die "Error opening $_: $!\n";
my @listt = grep { ! /^\.{1,2}$/ } readdir $DH2;
for ( @listt ) {
my $qfolder = ( $path . '\\' . $_ );
my $f = stat( $qfolder )->mtime;
$delta = time - $f;
if ( $delta > 5184000 ) {
push @dir, $qfolder;
push @log, ( $qfolder . "Age: " . ( $delta / 86400 ) . " days old" );
$z++;
}
}
}
for ( @dir ) {
rmtree( $_ ) or die "Cannot rmtree '$_' : $!";
}
这似乎适用于某些目录,但在尝试使用一个目录时失败。
错误消息包括
没有这样的文件或目录,正在中止。
目录不为空
我为一个特定路径多次获取这两条消息,然后在不尝试其他目录的情况下停止。