Sample code for 30+ languages & platforms
Perl

Unzip Some Files by Iterating over Entries

See more Zip Examples

Demonstrates how to unzip specific files by iterating over entries in a .zip.

Chilkat Perl Downloads

Perl
use chilkat();

$success = 0;

# This requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

$zip = chilkat::CkZip->new();

# Open a .zip containing:
# 
# a1.xml
# b1.xml
# c1.xml
# dir1/a2.xml
# dir1/c2.xml
# dir2/dir3/c3.xml

# We wish to unzip only a1.xml, b1.xml, and c1.xml
$success = $zip->OpenZip("qa_data/zips/xml_files.zip");
if ($success == 0) {
    print $zip->lastErrorText() . "\r\n";
    exit;
}

$sbFilename = chilkat::CkStringBuilder->new();

$entry = chilkat::CkZipEntry->new();
$numEntries = $zip->get_NumEntries();
$i = 0;
while ($i < $numEntries) {
    $zip->EntryAt($i,$entry);

    $entryFilePath = $entry->fileName();
    print $entryFilePath . "\r\n";

    if ($entry->get_IsDirectory() == 0) {
        $sbFilename->SetString($entryFilePath);
        if ($sbFilename->Contains("/",0) == 0) {
            # Does not contain "/"
            # Unzip to the qa_output directory.
            $success = $entry->Extract("qa_output");
            if ($success == 0) {
                print "Failed to unzip " . $entryFilePath . "\r\n";
            }
            else {
                print "Unzipped " . $entryFilePath . "\r\n";
            }

        }

    }

    $i = $i + 1;
}