Perl Requires Chilkat v11.0.0+
Chilkat2 Perl
Replace/Update a FIle in a .zip
See more Zip Examples
Demonstrates how to replace/update a file from a .zip. Note: This requires the entire .zip to be rewritten.Chilkat Perl Downloads
use strict;
use warnings;
use Chilkat2;
# This requires the Chilkat Zip API to have been previously unlocked.
# See Unlock Chilkat Zip for sample code.
# First prepare a .zip and write it..
my $zip = Chilkat2::Zip->new;
$zip->NewZip('qa_output/abc.zip');
# Add some files..
my $charset = 'utf-8';
$zip->AddString('a.txt', 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa', $charset);
$zip->AddString('b.txt', 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb', $charset);
$zip->AddString('c.txt', 'cccccccccccccccccccccccccccccccccccc', $charset);
# Write to qa_output/abc.zip
# This .zip contains three files: a.txt, b.txt, and c.txt
my $success = $zip->WriteZipAndClose();
# -------------------------------------------------------------------
# Open abc.zip, replace the content of the "b.txt" entry with something else, and re-write.
my $zip2 = Chilkat2::Zip->new;
$zip2->OpenZip('qa_output/abc.zip');
my $entry = Chilkat2::ZipEntry->new;
if ($zip2->EntryOf('b.txt', $entry)) {
$entry->ReplaceString('This is the new content. bbbbbbbbbbbbbbbbbbbbbb', 'utf-8');
}
# Write the modified .zip back to "abc.zip"
$success = $zip2->WriteZipAndClose();
print "success.\n";