Sample code for 30+ languages & platforms
Go Requires Chilkat v11.0.0+

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()