2016-11-24 4 views
2

Я попытался разархивировать защищенный паролем zip-файл с помощью модуля Perl Archive. Но endedup с ошибкойошибка: раздуть ошибку данных ошибки

ошибка:

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

Может кто-нибудь поможет мне найти asolution и распаковать защищенный паролем файл почтового индекса (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

Смежные вопросы