Sample code for 30+ languages & platforms
Unicode C

List Files in Zip using EntryAt / GetNext

See more Zip Examples

Demonstrates how to iterate over the files and directories in a zip archive using EntryAt/GetNext.

Chilkat Unicode C Downloads

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

void ChilkatSample(void)
    {
    BOOL success;
    HCkZipW zip;
    HCkZipEntryW entry;
    BOOL hasMoreEntries;

    success = FALSE;

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

    zip = CkZipW_Create();

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

    entry = CkZipEntryW_Create();
    hasMoreEntries = CkZipW_EntryAt(zip,0,entry);
    while ((hasMoreEntries == TRUE)) {
        if (CkZipEntryW_getIsDirectory(entry) == FALSE) {
            wprintf(L"%s\n",CkZipEntryW_fileName(entry));
        }
        else {
            wprintf(L"(directory) %s\n",CkZipEntryW_fileName(entry));
        }

        hasMoreEntries = CkZipEntryW_GetNext(entry);
    }

    // Sample output showing both file and directory entries:

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


    CkZipW_Dispose(zip);
    CkZipEntryW_Dispose(entry);

    }