因为管理需要,需要删除某目录下的过期文件,其实是将超过7天的文件移动到备份目录,超过7天的目录(保留目录结构)移动到备份目录,该脚本是通过检测文件的创建时间来进行判断。
脚本如下:
#!C:/perl/bin/perl.exe
#---------------------------------------------------------
use strict;
use File::Copy::Recursive qw(fcopy rcopy dircopy fmove rmove dirmove);
my $dir = "E:/download/ppt931/";
my $back_dir = "E:/download/del_backup/";
opendir DH, $dir or die "cannot chdir to $dir : $!";
for my $file ( readdir DH ) {
( $file eq '.' ) and next;
( $file eq '..' ) and next;
#print $dir.$file."\n";
#print time()."\n";
#print ((stat($dir.$file))[10])."\n";
if ( time() - ( stat( $dir . $file ) )[10] > ( 60 * 60 * 24 * 7 ) ) {
#print $dir.$file."\n";
if ( -d $dir . $file ) {
print $dir. $file . "\n";
$File::Copy::Recursive::CPRFComp = 1;
dirmove( $dir . $file, $back_dir ) or die $!;
}
else {
print $dir. $file . "\n";
fmove( $dir . $file, $back_dir ) or die $!;
}
}
}
closedir DH;
关于模块“File::Copy::Recursive”的用法请参考CPAN。
(stat($dir.$file))[10]),获取文件的创建时间。
$File::Copy::Recursive::CPRFComp = 1,将保持目录结构不变。