Sample code for 30+ languages & platforms
C

Zip -- Exclude Files Based on Wildcard Matching

See more Zip Examples

Demonstrates how to use the SetExclusions method to exclude matching files from being added to a .zip.

Chilkat C Downloads

C
#include <C_CkZip.h>
#include <C_CkStringArray.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkZip zip;
    HCkStringArray saExcludes;
    BOOL recurse;

    success = FALSE;

    zip = CkZip_Create();

    success = CkZip_NewZip(zip,"qa_output/x.zip");

    // Let's add files from the directory tree rooted at C:\AAWorkarea\ChilkatSampleProjects

    // However.. we want to exclude all files ending in ".cache" or ".pdb" regardless of the sub-directory.
    // Also exclude all files under any "obj" directory,
    // and we also want to exclude any .exe found under a "win10-x64" directory.

    saExcludes = CkStringArray_Create();
    CkStringArray_Append(saExcludes,"*.cache");
    CkStringArray_Append(saExcludes,"*.pdb");
    CkStringArray_Append(saExcludes,"*/obj/*");
    CkStringArray_Append(saExcludes,"*/win10-x64/*.exe");
    CkZip_SetExclusions(zip,saExcludes);

    // Append promises of paths and files to be zipped.
    recurse = TRUE;
    success = CkZip_AppendFiles(zip,"c:/AAWorkArea/ChilkatSampleProjects/*",recurse);
    if (success == FALSE) {
        printf("%s\n",CkZip_lastErrorText(zip));
        CkZip_Dispose(zip);
        CkStringArray_Dispose(saExcludes);
        return;
    }

    // Create the zip from the file and directory promises added previously.
    success = CkZip_WriteZipAndClose(zip);
    if (success == FALSE) {
        printf("%s\n",CkZip_lastErrorText(zip));
        CkZip_Dispose(zip);
        CkStringArray_Dispose(saExcludes);
        return;
    }

    printf("Success.\n");


    CkZip_Dispose(zip);
    CkStringArray_Dispose(saExcludes);

    }