rmtree在特定目录中失败

时间:2018-06-08 11:37:48

标签: windows perl

我想搜索一个目录树,删除任何超过60天的目录。

的Perl

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 '$_' : $!";
}

这似乎适用于某些目录,但在尝试使用一个目录时失败。

错误消息包括

  

没有这样的文件或目录,正在中止。

  

目录不为空

我为一个特定路径多次获取这两条消息,然后在不尝试其他目录的情况下停止。

0 个答案:

没有答案