I've recreated a test program which shows me error messages on stdout and unzipping more than once really seems to not work for me. I have ActiveState Perl 5.10.1.1007 32 Bit on Win Server 2003 R2 SP2 and Archive::Zip has Version 1.30.
use strict; use Archive::Zip qw(:CONSTANTS :ERROR_CODES); use File::Temp; my $tmp = $ENV{'TEMP'}.'/zip/extractMember'; my $zip = Archive::Zip->new(); if ($zip->read('test.zip') != AZ_OK) { die 'Einlesen klappt nicht.'; } foreach my $member ($zip->members()) { print($member->fileName()."\n"); $member->extractToFileNamed(File::Temp::tempnam($tmp, 'XXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXX')); $member->extractToFileNamed(File::Temp::tempnam($tmp, 'XXXXXXXXXXXXX +XXXXXXXXXXXXXXXXXXX')); }
Output:
Anlagen.zip
format error: CRC or size mismatch while skipping data descriptor
at C:/Programme/Perl/lib/Archive/Zip/ZipFileMember.pm line 189
Archive::Zip::ZipFileMember::_skipLocalFileHeader('Archive::Zip::ZipFileMember=HASH(0x1c754dc)') called at C:/Programme/Perl/lib/Archive/Zip/ZipFileMember.pm line 395
Archive::Zip::ZipFileMember::rewindData('Archive::Zip::ZipFileMember=HASH(0x1c754dc)') called at C:/Programme/Perl/lib/Archive/Zip/Member.pm line 990
Archive::Zip::Member::extractToFileHandle('Archive::Zip::ZipFileMember=HASH(0x1c754dc)', 'IO::File=GLOB(0x1c7b924)') called at C:/Programme/Perl/lib/Archive/Zip/Member.pm line 488
Archive::Zip::Member::extractToFileNamed('Archive::Zip::ZipFileMember=HASH(0x1c754dc)', 'D:\Benutzer\TSCHOE~1\LOKALE~1\Temp\zip\extractMember\DKbzQX0R...') called at D:/Benutzer/tschoening/Eigene Dateien/Eclipse/Perltests/StandAlone/zip/extractMember.pl line 18
Anlagen.zip.pk7
format error: CRC or size mismatch while skipping data descriptor
at C:/Programme/Perl/lib/Archive/Zip/ZipFileMember.pm line 189
Archive::Zip::ZipFileMember::_skipLocalFileHeader('Archive::Zip::ZipFileMember=HASH(0x1c7586c)') called at C:/Programme/Perl/lib/Archive/Zip/ZipFileMember.pm line 395
Archive::Zip::ZipFileMember::rewindData('Archive::Zip::ZipFileMember=HASH(0x1c7586c)') called at C:/Programme/Perl/lib/Archive/Zip/Member.pm line 990
Archive::Zip::Member::extractToFileHandle('Archive::Zip::ZipFileMember=HASH(0x1c7586c)', 'IO::File=GLOB(0x1c7b934)') called at C:/Programme/Perl/lib/Archive/Zip/Member.pm line 488
Archive::Zip::Member::extractToFileNamed('Archive::Zip::ZipFileMember=HASH(0x1c7586c)', 'D:\Benutzer\TSCHOE~1\LOKALE~1\Temp\zip\extractMember\hrEJi2dV...') called at D:/Benutzer/tschoening/Eigene Dateien/Eclipse/Perltests/StandAlone/zip/extractMember.pl line 18
Testeinreichung AM-SoFT.pdf.p7s
format error: CRC or size mismatch while skipping data descriptor
at C:/Programme/Perl/lib/Archive/Zip/ZipFileMember.pm line 189
Archive::Zip::ZipFileMember::_skipLocalFileHeader('Archive::Zip::ZipFileMember=HASH(0x1c75a3c)') called at C:/Programme/Perl/lib/Archive/Zip/ZipFileMember.pm line 395
Archive::Zip::ZipFileMember::rewindData('Archive::Zip::ZipFileMember=HASH(0x1c75a3c)') called at C:/Programme/Perl/lib/Archive/Zip/Member.pm line 990
Archive::Zip::Member::extractToFileHandle('Archive::Zip::ZipFileMember=HASH(0x1c75a3c)', 'IO::File=GLOB(0x1c7bc04)') called at C:/Programme/Perl/lib/Archive/Zip/Member.pm line 488
Archive::Zip::Member::extractToFileNamed('Archive::Zip::ZipFileMember=HASH(0x1c75a3c)', 'D:\Benutzer\TSCHOE~1\LOKALE~1\Temp\zip\extractMember\za1J__f2...') called at D:/Benutzer/tschoening/Eigene Dateien/Eclipse/Perltests/StandAlone/zip/extractMember.pl line 18
Testeinreichung AM-SoFT.pdf
format error: CRC or size mismatch while skipping data descriptor
at C:/Programme/Perl/lib/Archive/Zip/ZipFileMember.pm line 189
Archive::Zip::ZipFileMember::_skipLocalFileHeader('Archive::Zip::ZipFileMember=HASH(0x1c75c0c)') called at C:/Programme/Perl/lib/Archive/Zip/ZipFileMember.pm line 395
Archive::Zip::ZipFileMember::rewindData('Archive::Zip::ZipFileMember=HASH(0x1c75c0c)') called at C:/Programme/Perl/lib/Archive/Zip/Member.pm line 990
Archive::Zip::Member::extractToFileHandle('Archive::Zip::ZipFileMember=HASH(0x1c75c0c)', 'IO::File=GLOB(0x1c7b704)') called at C:/Programme/Perl/lib/Archive/Zip/Member.pm line 488
Archive::Zip::Member::extractToFileNamed('Archive::Zip::ZipFileMember=HASH(0x1c75c0c)', 'D:\Benutzer\TSCHOE~1\LOKALE~1\Temp\zip\extractMember\tqEEW0aI...') called at D:/Benutzer/tschoening/Eigene Dateien/Eclipse/Perltests/StandAlone/zip/extractMember.pl line 18
Testeinreichung AM-SoFT_signed.pdf
IO error: reading header signature :
at C:/Programme/Perl/lib/Archive/Zip/ZipFileMember.pm line 279
Archive::Zip::ZipFileMember::_readDataDescriptor('Archive::Zip::ZipFileMember=HASH(0x1887acc)') called at C:/Programme/Perl/lib/Archive/Zip/ZipFileMember.pm line 186
Archive::Zip::ZipFileMember::_skipLocalFileHeader('Archive::Zip::ZipFileMember=HASH(0x1887acc)') called at C:/Programme/Perl/lib/Archive/Zip/ZipFileMember.pm line 395
Archive::Zip::ZipFileMember::rewindData('Archive::Zip::ZipFileMember=HASH(0x1887acc)') called at C:/Programme/Perl/lib/Archive/Zip/Member.pm line 990
Archive::Zip::Member::extractToFileHandle('Archive::Zip::ZipFileMember=HASH(0x1887acc)', 'IO::File=GLOB(0x1c7baa4)') called at C:/Programme/Perl/lib/Archive/Zip/Member.pm line 488
Archive::Zip::Member::extractToFileNamed('Archive::Zip::ZipFileMember=HASH(0x1887acc)', 'D:\Benutzer\TSCHOE~1\LOKALE~1\Temp\zip\extractMember\Nojn_u7h...') called at D:/Benutzer/tschoening/Eigene Dateien/Eclipse/Perltests/StandAlone/zip/extractMember.pl line 18
In reply to Re: unable to extract same file twice using Archive::Zip
by Pickwick
in thread unable to extract same file twice using Archive::Zip
by Pickwick
For: | Use: | ||
& | & | ||
< | < | ||
> | > | ||
[ | [ | ||
] | ] |