(Perl) Unzip Selected Files from a Zip Archive
Demonstrates how to iterate over the files contained within a .zip and unzip specific files.
use chilkat();
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$zip = chilkat::CkZip->new();
$success = $zip->OpenZip("my_files.zip");
if ($success != 1) {
print $zip->lastErrorText() . "\r\n";
exit;
}
$unzipDir = "/temp/unzipDir";
# Get the number of files and directories in the .zip
$n = $zip->get_NumEntries();
print $n . "\r\n";
for ($i = 0; $i <= $n - 1; $i++) {
# entry is a ZipEntry
$entry = $zip->GetEntryByIndex($i);
if ($entry->get_IsDirectory() == 0) {
# (the filename may include a path)
print $entry->fileName() . "\r\n";
# Your application may choose to unzip this entry
# based on the filename.
# If the entry should be unzipped, then call Extract(unzipDir)
$success = $entry->Extract($unzipDir);
if ($success != 1) {
print $entry->lastErrorText() . "\r\n";
exit;
}
}
}
|