У меня есть два архива, A.zip
и B.zip
. Я хочу добавить все файлы из A.zip
в B.zip
.
Как я могу сделать это с Archive::Zip
в Perl? Я думал, что смогу сделать что-то вроде этого:
my $zipA = Archive::Zip->new();
my $zipB = Archive::Zip->new();
die 'read error' unless ($zipA->read( 'A.zip' ) == AZ_OK );
my @members = $zipA->memberNames();
for my $m (@members) {
my $file = $zipA->removeMember($m);
$zipB->addMember($file);
}
но если я не позвоню writeToFileNamed()
, то никакие файлы не будут созданы, и, если я это сделаю, B.zip
получит перезаписанные с содержимым A.zip
.
Я мог бы прочитать содержимое B.zip
и записать их вместе с содержимым A.zip
обратно в B.zip
, но это кажется действительно неэффективным. (Моя проблема на самом деле связана с миллионами текстовых файлов, сжатых в тысячи zip-файлов.)
Есть ли лучший способ сделать это?