无法使用Perl提取Zip文件

  • 本文关键字:提取 Zip 文件 Perl perl
  • 更新时间 :
  • 英文 :


我试图从zip容器中提取文件,但我的脚本没有返回以下错误

错误详细信息:

格式错误:错误的签名:0x00000000,文件中偏移量为568276AUS-000X-201512 28234755_Data.zip,网址:C/Perl64/lib/Archive/zip.pm477.存档::Zip::_readSignature('IO::File=GLOB(0x2a5e2a8)','AUS-000X-20151228234755_Data.Zip')调用于C:/Perl64/lib/Archive/Zip/Archive.pm第603行档案::Zip::档案::readFromFileHandle('档案::Zip::档案=HASH(0x32c1e8)',"IO::File=GLOB(0x2a5e2a8)","AUS-000X-20151228234755_Data.zip")调用位于C/Perl64/lib/Archive/Zip/Archive.pm第548行存档::Zip::存档::读取('存档::Zip::存档=HASH(0x32c1e8)','AUS-000X-20151228234755_Data.zip')在zip_extract.pl行调用14读取AUS-000X-20151228234755_Data.zip失败

use strict;
use Archive::Zip qw(:ERROR_CODES);
opendir( DIR, "C:\Users\vinayas1\Desktop\Automation" ) || die "Can't
+ open local directory : $!";
my @zips = grep { -f "./$_" } readdir(DIR);
close(DIR);
foreach my $zipfiles ( grep( /.zip$/, @zips ) ) {
    print "$zipfilesn";
    if ( $zipfiles =~ /w+.zip$/ ) {
        my $zip     = Archive::Zip->new();
        my $zipName = "$zipfiles";
        my $status  = $zip->read($zipName);
        die "Read of $zipName failedn" if $status != AZ_OK;
        print "$zipfilesn";
        $zip->extractTree();
        #unlink($zipfiles);
    }
}

格式错误:错误签名:0x00000000,偏移量568276

这可能意味着文件已损坏。ZIP签名以0x4b50小endian结尾,但在您的情况下,它读取0x0000,这表明文件不符合ZIP规范。

最新更新