Sample code for 30+ languages & platforms
Unicode C

Unzip all Files to a Single Directory (Ignoring Subdirectories in Zip)

See more Zip Examples

Demonstrates how to unzip all files into a single directory, ignoring the internal directory structure of the files in the .zip.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkFileAccessW.h>
#include <C_CkZipW.h>

void ChilkatSample(void)
    {
    BOOL success;
    const wchar_t *outDir;
    HCkFileAccessW fac;
    HCkZipW zip;
    int numUnzipped;

    success = FALSE;

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

    outDir = L"c:/temp/testUnzipDir";

    // Make sure our output directory exists.
    fac = CkFileAccessW_Create();
    success = CkFileAccessW_DirEnsureExists(fac,outDir);
    if (success == FALSE) {
        wprintf(L"%s\n",CkFileAccessW_lastErrorText(fac));
        CkFileAccessW_Dispose(fac);
        return;
    }

    zip = CkZipW_Create();

    // In this example, the xml_files.zip contains some files in the subdirectories "dir1" and also "dir2/dir3".

    // a1.xml
    // b1.xml
    // c1.xml
    // dir1/a2.xml
    // dir1/c2.xml
    // dir2/dir3/c3.xml

    success = CkZipW_OpenZip(zip,L"qa_data/zips/xml_files.zip");
    if (success == FALSE) {
        wprintf(L"%s\n",CkZipW_lastErrorText(zip));
        CkFileAccessW_Dispose(fac);
        CkZipW_Dispose(zip);
        return;
    }

    // Unzip all files into the directory c:/temp/testUnzipDir
    numUnzipped = CkZipW_UnzipInto(zip,outDir);
    if (numUnzipped < 0) {
        wprintf(L"%s\n",CkZipW_lastErrorText(zip));
        CkFileAccessW_Dispose(fac);
        CkZipW_Dispose(zip);
        return;
    }

    wprintf(L"Num unzipped = %d\n",numUnzipped);

    // After unzipping via UnzipInto, we have this:

    // c:\temp\testUnzipDir\a1.xml
    // c:\temp\testUnzipDir\b1.xml
    // c:\temp\testUnzipDir\c1.xml
    // c:\temp\testUnzipDir\a2.xml
    // c:\temp\testUnzipDir\c2.xml
    // c:\temp\testUnzipDir\c3.xml

    CkZipW_CloseZip(zip);

    wprintf(L"Success.\n");


    CkFileAccessW_Dispose(fac);
    CkZipW_Dispose(zip);

    }