【发布时间】:2019-06-21 02:52:03
【问题描述】:
下面的代码工作正常,除了一些 zip 文件我得到了错误
格式错误:找不到 EOCD 签名 在 C:/LegacyApp/perl/lib/Archive/Zip/Archive.pm 第 695 行 Archive::Zip::Archive::_findEndOfCentralDirectory('Archive::Zip::Archive=HASH(0x375a730)', 'IO::File=GLOB(0x380eb90)') 在 C:/LegacyApp/perl/lib/Archive 调用/Zip/Archive.pm 第 581 行 Archive::Zip::Archive::readFromFileHandle('Archive::Zip::Archive=HASH(0x375a730)', 'IO::File=GLOB(0x380eb90)',使用下面的代码:
use Archive::Zip;
unzip($zipfile,$folder,$out);
sub unzip {
my ($archive, $want, $dir) = @_;
my $zip = Archive::Zip->new($archive);
foreach my $file ($zip->members) {
if (($file->fileName =~ /VERSION\/(.*?).cosipa.xlsx$/i)) {
$zip->extractMember($file,$dir.$file->fileName);
}
if ($file->fileName =~ /VERSION\/(.*?).txt$/i) {
$zip->extractMember($file,$dir.$file->fileName);
}
}
return 1;
}
如果我删除了那个特定的 zip 文件,那么它可以正常工作。但我需要一个解决方案,让我也应该能够处理这些 zip 文件,如果可能,请让我知道代码和 zip 文件有什么问题。
提前致谢
【问题讨论】:
-
如果无法解决,至少我需要一个解决方案来忽略这些错误