您的位置:首页 > 其它

File::Find与文件时间比较的例子

2008-07-28 12:57 281 查看
#!c:/perl/bin/perl -w

use strict;
use File::Find;

my $file_num=0;

sub l_time {
my ( $__in_time ) = @_;
my ($__now_time);
eval{
my ( $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst ) =
localtime ($__in_time);
#$year += 1900 if ( $year >= 100 );
$year += 1900;
$mon++;
$__now_time = sprintf( "%4s-%02s-%02s %02s:%02s:%02s",
$year, $mon, $mday, $hour, $min, $sec );
} || die print "获取时间错误:$!";

return $__now_time;
}

#按照路径进行查找
#my $a=find(/&wanted,'d:/');
#首先查找当前目录下文件再查找子目录下文件
my $a=finddepth(/&wanted,'d:/');
sub wanted {
if ( $File::Find::name =~ m/T_File_Find/ ){
$file_num++ ;
print '$_=',"$_/n";
print '$File::Find::dir=',"$File::Find::dir/n";
print '$File::Find::name=',"$File::Find::name/n";
#print '$File::Find::fullname=',"$File::Find::fullname/n";

my $file_size = -s $File::Find::name;
print "文件大小:$file_size/n";

my $mtime = -M $File::Find::name;
print "文件修改时间为:$mtime/n";
my $mtime1 = localtime $mtime;
print "文件修改时间为:$mtime1/n";
my $mtime2 = &l_time($mtime);
print "文件修改时间为:$mtime2/n";

my $atime = -A $File::Find::name;
print "文件访问时间为:$atime/n";
my $atime1 = localtime $atime;
print "文件访问时间为:$atime1/n";
my $atime2 = &l_time($atime);
print "文件访问时间为:$atime2/n";

my $ctime = -C $File::Find::name;
print "文件索引节点时间为:$ctime/n";
my $ctime1 = localtime $ctime;
print "文件索引节点时间为:$ctime1/n";
my $ctime2 = &l_time($ctime);
print "文件索引节点时间为:$ctime2/n";

print "========================/n";

print time,"/n";
print &l_time(time),"/n";
print &l_time(time-$mtime),"/n";

print "========================/n";
print &l_time(time-$mtime*86400),"/n";
print &l_time(time-$atime*86400),"/n";
print &l_time(time-$ctime*86400),"/n";
}

return $file_num if ($file_num == 1);

}

print "/$a=$a/n";
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: