Sample code for 30+ languages & platforms
Swift

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 Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

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

    let zip = CkoZip()!

    // 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.open(zipPath: "qa_data/zips/xml_files.zip")
    if success == false {
        print("\(zip.lastErrorText!)")
        return
    }

    let sbFilename = CkoStringBuilder()!

    let entry = CkoZipEntry()!
    var numEntries: Int = zip.numEntries.intValue
    var i: Int = 0
    while i < numEntries {
        zip.entry(at: i, entry: entry)

        var entryFilePath: String? = entry.fileName
        print("\(entryFilePath!)")

        if entry.isDirectory == false {
            sbFilename.setString(value: entryFilePath)
            if sbFilename.contains(str: "/", caseSensitive: false) == false {
                // Does not contain "/"
                // Unzip to the qa_output directory.
                success = entry.extract(dirPath: "qa_output")
                if success == false {
                    print("Failed to unzip \(entryFilePath!)")
                }
                else {
                    print("Unzipped \(entryFilePath!)")
                }

            }

        }

        i = i + 1
    }


}