Sample code for 30+ languages & platforms
Go

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

Go
    success := false

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

    zip := chilkat.NewZip()

    // 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 == false {
        fmt.Println(zip.LastErrorText())
        zip.DisposeZip()
        return
    }

    sbFilename := chilkat.NewStringBuilder()

    entry := chilkat.NewZipEntry()
    numEntries := zip.NumEntries()
    i := 0
    for i < numEntries {
        zip.EntryAt(i,entry)

        entryFilePath := entry.FileName()
        fmt.Println(entryFilePath)

        if entry.IsDirectory() == false {
            sbFilename.SetString(entryFilePath)
            if sbFilename.Contains("/",false) == false {
                // Does not contain "/"
                // Unzip to the qa_output directory.
                success = entry.Extract("qa_output")
                if success == false {
                    fmt.Println("Failed to unzip ", entryFilePath)
                } else {
                    fmt.Println("Unzipped ", entryFilePath)
                }

            }

        }

        i = i + 1
    }


    zip.DisposeZip()
    sbFilename.DisposeStringBuilder()
    entry.DisposeZipEntry()