使用 perl 从其他 zip 创建 zip 聚合

发布于 2024-11-09 05:44:32 字数 771 浏览 0 评论 0原文

我正在尝试使用 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

街道布景 2024-11-16 05:44:32

尝试

my $filename = $members[0]->fileName();

Try

my $filename = $members[0]->fileName();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文