使用 perl 从其他 zip 创建 zip 聚合
我正在尝试使用 perl 的 Archive::Zip 模块创建一个 zip 文件。我有许多已创建的 zip 文件,其中每个文件都包含一个 csv 文件。如果可能的话,我希望在不解压文件的情况下创建一个包含所有单独 csv 文件的大 zip 文件。 例如,我有: 2010-01.zip 2010-02.zip 2010-03.zip 。 。 2010-12.zip
我想创建一个 2010.zip,其中包含 12 个 csv 文件(2010-01.csv、2010-02.csv...2010-12.csv)。
我到目前为止的代码是:
my $aggzip = Archive::Zip->new();
# get all zip files for this year
my @files = <$path*$year*.zip>;
foreach my $file (@files) {
my $zip = Archive::Zip->new($file);
my @members = $zip->members();
my $filename = %{$members[0]}->{'fileName'};
$aggzip->addFile( $level2Path.$filename, $filename);
}
if ( $aggzip->writeToFileNamed($year.".zip") != AZ_OK ) {
die 'write error';
}
这不起作用。有什么想法吗?
I'm trying to create a zip file using perl's Archive::Zip module. I have a number of already created zip files where each one contains one single csv file. I want, if possible without extracting the files, to create ONE big zip file that will contain all the individual csv files.
For example, I have:
2010-01.zip
2010-02.zip
2010-03.zip
.
.
2010-12.zip
And I want to create one 2010.zip that will contain 12 csv files (2010-01.csv, 2010-02.csv...2010-12.csv).
The code I have up to now is:
my $aggzip = Archive::Zip->new();
# get all zip files for this year
my @files = <$path*$year*.zip>;
foreach my $file (@files) {
my $zip = Archive::Zip->new($file);
my @members = $zip->members();
my $filename = %{$members[0]}->{'fileName'};
$aggzip->addFile( $level2Path.$filename, $filename);
}
if ( $aggzip->writeToFileNamed($year.".zip") != AZ_OK ) {
die 'write error';
}
This does not work. Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试
Try