Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

(bbfu) (Archive::Zip) Re: Manipulating ZIP files in Perl

by bbfu (Curate)
on Jan 05, 2003 at 04:02 UTC ( [id://224370]=note: print w/replies, xml ) Need Help??


in reply to Manipulating ZIP files in Perl

Unless I'm misunderstanding what you want, Archive::Zip should do what you ask. The following snippet will add the file s2.tst to the zip file tst.zip, creating tst2/ if it doesn't already exist in the archive.

#!/usr/bin/perl use warnings; use strict; use Archive::Zip qw( :ERROR_CODES ); my $zip = Archive::Zip->new(); $zip->read('tst.zip') == AZ_OK or die "read error\n"; $zip->addFile('tst2/s2.tst'); $zip->overwrite() == AZ_OK or die "write error\n";

According to the docs, Archive::Zip can also rename already-existing items in a Zip file.

Update: Looking at your question again, it seems I may have misunderstood it. :) From the doc's, it seems like Archive::Zip should still be able to do what you want, using the replaceMember() method, but my initial tests don't seem to be working. I'll play with it some more.

Update2: Ah, got it. I think this is what you want:

#!/usr/bin/perl use warnings; use strict; use Archive::Zip qw( :ERROR_CODES ); my $zip = Archive::Zip->new(); $zip->read('tst.zip') == AZ_OK or die "read error\n"; my $m1 = $zip->memberNamed('tst2/s2.tst'); $m1->fileName('foo/tst2/s2.tst'); # Rename the file, adding +a subdir $zip->overwrite() == AZ_OK or die "Write error\n";

bbfu
Black flowers blossum
Fearless on my breath

Replies are listed 'Best First'.
Re: (bbfu) (Archive::Zip) Re: Manipulating ZIP files in Perl
by mhd.tahawi (Initiate) on Aug 01, 2014 at 12:01 UTC
    Do you know if this solution can work with archives more than 4GB in size (zip64) ?
    thank you

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://224370]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (4)
As of 2024-03-29 09:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found