Sample code for 30+ languages & platforms
PureBasic

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

PureBasic
IncludeFile "CkZip.pb"
IncludeFile "CkStringArray.pb"

Procedure ChilkatExample()

    success.i = 0

    zip.i = CkZip::ckCreate()
    If zip.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkZip::ckNewZip(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.i = CkStringArray::ckCreate()
    If saExcludes.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkStringArray::ckAppend(saExcludes,"*.cache")
    CkStringArray::ckAppend(saExcludes,"*.pdb")
    CkStringArray::ckAppend(saExcludes,"*/obj/*")
    CkStringArray::ckAppend(saExcludes,"*/win10-x64/*.exe")
    CkZip::ckSetExclusions(zip,saExcludes)

    ; Append promises of paths and files to be zipped.
    recurse.i = 1
    success = CkZip::ckAppendFiles(zip,"c:/AAWorkArea/ChilkatSampleProjects/*",recurse)
    If success = 0
        Debug CkZip::ckLastErrorText(zip)
        CkZip::ckDispose(zip)
        CkStringArray::ckDispose(saExcludes)
        ProcedureReturn
    EndIf

    ; Create the zip from the file and directory promises added previously.
    success = CkZip::ckWriteZipAndClose(zip)
    If success = 0
        Debug CkZip::ckLastErrorText(zip)
        CkZip::ckDispose(zip)
        CkStringArray::ckDispose(saExcludes)
        ProcedureReturn
    EndIf

    Debug "Success."


    CkZip::ckDispose(zip)
    CkStringArray::ckDispose(saExcludes)


    ProcedureReturn
EndProcedure