【发布时间】:2011-12-07 16:45:03
【问题描述】:
我有两个 zip 文件,A.zip 和 B.zip。我想将A.zip 中的所有文件添加到B.zip。
如何在 Perl 中使用 Archive::Zip 来做到这一点?我以为我可以这样做:
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 文件。)
有没有更好的方法来做到这一点?
【问题讨论】: