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

 #!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";

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值