Sample code for 30+ languages & platforms
PureBasic

Create Zip Excluding Files Matching Patterns

See more Zip Examples

How to create a .zip archive excluding (skipping) files that match a set of wildcarded patterns.

Chilkat PureBasic Downloads

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

Procedure ChilkatExample()

    success.i = 0

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

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

    success = CkZip::ckNewZip(zip,"test.zip")
    If success <> 1
        Debug CkZip::ckLastErrorText(zip)
        CkZip::ckDispose(zip)
        ProcedureReturn
    EndIf

    ; Create a string array object with our set of filename patterns
    ; to be excluded:
    sa.i = CkStringArray::ckCreate()
    If sa.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkStringArray::ckAppend(sa,"*.bak")
    success = CkStringArray::ckAppend(sa,"*.tmp")

    ; Tell the zip object to use these exclusions:
    CkZip::ckSetExclusions(zip,sa)

    ; Append a directory tree.  The AppendFiles does
    ; not read the file contents or append them to the zip
    ; object in memory.  It simply appends references
    ; to the files so that when WriteZip (or WriteZipAndClose,
    ; or WriteExe, etc.) is called, the files are compressed
    ; and encrypted.
    recurse.i = 1
    success = CkZip::ckAppendFiles(zip,"/temp/a/*",recurse)

    success = CkZip::ckWriteZipAndClose(zip)
    If success <> 1
        Debug CkZip::ckLastErrorText(zip)
        CkZip::ckDispose(zip)
        CkStringArray::ckDispose(sa)
        ProcedureReturn
    EndIf

    Debug "Zip Created!"


    CkZip::ckDispose(zip)
    CkStringArray::ckDispose(sa)


    ProcedureReturn
EndProcedure