2016-11-24 202 views
2

我试图使用Perl归档模块解压缩密码保护的zip文件。 但有错误endedup错误:膨胀错误数据错误

错误:

inflate error data error at C:/Perl64/site/lib/Archive/Zip/Archive.pm line 367.

任何人都可以帮助我找到asolution,并解压缩密码保护的zip文件(用WinRAR来压缩与密码的文件)。

请找我使用的代码:

my $file = "D:\\Public\\Sample-Programs\\tempzip\\TESTFILE.zip"; 
my $password = "aaa"; 

my $zip = Archive::Zip->new($file) or die "can't unzip"; 
foreach my $member_name ($zip->memberNames) { 
    my $member = $zip->memberNamed($member_name); 
    next if $member->isDirectory; 
    $member->password($password); 
    my $contents = $zip->contents($member) or die "error accessing $member_name"; 
    print("contents = $contents"); 
} 
+0

感谢stevieb更新问题。 –

回答

1

上有另一种方式的解决方案,可能是我想它的帮助:

未经检验的使用WinZip refered from

my $Prog  = $ENV{"ProgramFiles"}.'\\WinZip\\WINZIP32.exe'; 
my $Password = 'Secret Password'; 
my $ZIP  = 'filename.zip'; 
my $Path  = 'c:\\my\\folder'; 
system("$Prog -e -s\"$Password\" \"$Zip\" \"$Path\""); 

测试使用7zip:

my $file = "test.zip"; 
my $password = "secret"; 
my $Prog  = "\"c:\\Program Files\\7-Zip\\7zG.exe\""; 
system("$Prog e -p$password -y $file"); 
+0

感谢您的答案,但我不使用winzip我使用WINRAR –

+0

谢谢ssr我只是将EXE更改为WINRAR和7zip格式的工作,非常感谢。 –

+0

@ shinoy.m:非常欢迎。 – ssr1012

相关问题