我目前正在使用核心模块 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 $. -> $_";
}
}
有什么想法或解决方法可以解决我的问题吗?
谢谢 !