Sample code for 30+ languages & platforms
DataFlex

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 DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoZip
    Variant vSaExcludes
    Handle hoSaExcludes
    Boolean iRecurse
    String sTemp1

    Move False To iSuccess

    Get Create (RefClass(cComChilkatZip)) To hoZip
    If (Not(IsComObjectCreated(hoZip))) Begin
        Send CreateComObject of hoZip
    End

    Get ComNewZip Of hoZip "qa_output/x.zip" To iSuccess

    // 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.

    Get Create (RefClass(cComCkStringArray)) To hoSaExcludes
    If (Not(IsComObjectCreated(hoSaExcludes))) Begin
        Send CreateComObject of hoSaExcludes
    End
    Get ComAppend Of hoSaExcludes "*.cache" To iSuccess
    Get ComAppend Of hoSaExcludes "*.pdb" To iSuccess
    Get ComAppend Of hoSaExcludes "*/obj/*" To iSuccess
    Get ComAppend Of hoSaExcludes "*/win10-x64/*.exe" To iSuccess
    Get pvComObject of hoSaExcludes to vSaExcludes
    Send ComSetExclusions To hoZip vSaExcludes

    // Append promises of paths and files to be zipped.
    Move True To iRecurse
    Get ComAppendFiles Of hoZip "c:/AAWorkArea/ChilkatSampleProjects/*" iRecurse To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoZip To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Create the zip from the file and directory promises added previously.
    Get ComWriteZipAndClose Of hoZip To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoZip To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Showln "Success."


End_Procedure