Sample code for 30+ languages & platforms
Java 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 Java Downloads

Chilkat2 Java
import com.chilkatsoft.chilkat2.ChilkatException;
import com.chilkatsoft.chilkat2.StringBuilder;
import com.chilkatsoft.chilkat2.Zip;
import com.chilkatsoft.chilkat2.ZipEntry;

public class ChilkatExample {

    public static void main(String[] args) {
        // This requires the Chilkat API to have been previously unlocked.
        // See Global Unlock Sample for sample code.

        Zip zip = new Zip();

        // 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
        try {
            zip.openZip("qa_data/zips/xml_files.zip");
        } catch (ChilkatException e) {
            System.out.println(e.getLastErrorText());
            return;
        }

        StringBuilder sbFilename = new StringBuilder();

        ZipEntry entry = new ZipEntry();
        int numEntries = zip.getNumEntries();
        int i = 0;
        while (i < numEntries) {
            zip.entryAt(i, entry);

            String entryFilePath = entry.getFileName();
            System.out.println(entryFilePath);

            if (!entry.getIsDirectory()) {
                sbFilename.setString(entryFilePath);
                if (!sbFilename.contains("/", false)) {
                    // Does not contain "/"
                    // Unzip to the qa_output directory.
                    try {
                        entry.extract("qa_output");
                        System.out.println("Unzipped " + entryFilePath);
                    } catch (ChilkatException e) {
                        System.out.println("Failed to unzip " + entryFilePath);
                    }
                }
            }

            i = i + 1;
        }
    }
}