3

我目前正在使用核心模块 IO::Uncompress::Unzip 来读取 Perl 中 zip 文件的内容。我之前使用过Archive::Zip,这是一个很棒的模块,并没有让我很头疼,但它并没有捆绑为核心模块。

我想获取压缩在我的 zip 文件中的文件的最后修改时间。例如,我有以下文件:“test.zip”,其中包含“1.txt”、“2.txt”、“3.txt”。例如,zip 文件是今天最后一次修改的,而 txt 文件是一周前修改的。如何获取 zip 中每个压缩文件的最后修改日期?我可以用 Archive::Zip 很容易地做到这一点,但不能用这个模块..

这是我正在使用的代码:

use strict;
use warnings;
use IO::Uncompress::Unzip qw($UnzipError);

my $zipfile  = 'test.zip';
my $u = new IO::Uncompress::Unzip $zipfile
   or die "Cannot open $zipfile: $UnzipError";
for (my $status = 1; $status > 0; $status = $u->nextStream) {
    my $name = $u->getHeaderInfo->{Name};
    # my $date = ctime(stat($u)->mtime); -> This doesn't work, even though $u is considered as a filehandle in the IO::Uncompress::Unzip documentation.. 
    warn "Processing member $name\n" ;

    while(<$u>) {
        print "Line $. -> $_";
    }
}

有什么想法或解决方法可以解决我的问题吗?

谢谢 !

4

1 回答 1

4

你可以试试$u->getHeaderInfo->{Time}

检查所有属性

use Data::Dumper;
print Dumper scalar $u->getHeaderInfo;
于 2014-05-21T07:43:30.140 回答