Perl Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Perl Examples

Quick Start
Perl Unicode
Perl Byte Array
Perl Certs
Perl Email
Perl Encryption
Perl FTP
HTML-to-XML
Perl HTTP
Perl IMAP
Perl MHT
Perl MIME
Perl RSA
Perl S/MIME
Perl Signatures
Perl Socket
Perl Spider
Perl Tar
Perl Upload
Perl XML
Perl XMP
Perl Zip

More Examples...
String
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
DH Key Exchange
DSA

Unreleased...
Bzip2
LZW
Bz2
Icon

 

 

 

 

 

 

 

Append File and Rename within Zip

How to append an additional file to a .zip and rename it within the .zip.

Download Chilkat Perl Module

use chilkat;

$zip = new chilkat::CkZip();

#  Any string unlocks the component for the 1st 30-days.
$success = $zip->UnlockComponent("Anything for 30-day trial");
if ($success != 1) {
    print $zip->lastErrorText() . "\n";
    exit;
}

#  Open an existing .zip.
#  Note: Opening a zip does not read the entire zip into memory.
#  It simply opens the zip and makes it ready for unzipping
#  or retrieving information and/or data.
$success = $zip->OpenZip("a.zip");
if ($success != 1) {
    print $zip->lastErrorText() . "\n";
    exit;
}

#  Save the current number of entries.
$numEntries = $zip->get_NumEntries();

#  Append a new file to the .zip.
#  The new entry is at index numEntries (indexing begins at 0).
#  Note: The AppendOneFileOrDir simply adds a reference to the
#  file to the zip object.  The file is not actually read
#  or physically added to the .zip file until the WriteZip or
#  WriteZipAndClose method is called.
$success = $zip->AppendOneFileOrDir("hamlet.xml");
if ($success != 1) {
    print $zip->lastErrorText() . "\n";
    exit;
}

#  Get the entry we just added:

$entry = $zip->GetEntryByIndex($numEntries);

#  Change the filename.
#  The zip component remembers the file referenced in the filesystem.
#  When the zip is written, the "hamlet.xml" file is read and
#  compressed, but the filename within the zip will be "shakespearePlay.xml".
$entry->put_FileName("shakespearePlay.xml");

#  Write the .zip
#  The Chilkat Zip component always writes to a temporary file
#  first.  This is to ensure that (in cases like this), if something
#  goes wrong we don't lose the original .zip.  If the write
#  finishes without error, it is moved to the destination
#  file, thus overwriting it.  The TempDir property controls
#  the directory where the temp zip is written.
$success = $zip->WriteZipAndClose();
if ($success != 1) {
    print $zip->lastErrorText() . "\n";
    exit;
}

 

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2007 Chilkat Software, Inc. All Rights Reserved.