Sample code for 30+ languages & platforms
Tcl

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

Tcl

load ./chilkat.dll

set success 0

set zip [new_CkZip]

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

set saExcludes [new_CkStringArray]

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.
set recurse 1
set success [CkZip_AppendFiles $zip "c:/AAWorkArea/ChilkatSampleProjects/*" $recurse]
if {$success == 0} then {
    puts [CkZip_lastErrorText $zip]
    delete_CkZip $zip
    delete_CkStringArray $saExcludes
    exit
}

# Create the zip from the file and directory promises added previously.
set success [CkZip_WriteZipAndClose $zip]
if {$success == 0} then {
    puts [CkZip_lastErrorText $zip]
    delete_CkZip $zip
    delete_CkStringArray $saExcludes
    exit
}

puts "Success."

delete_CkZip $zip
delete_CkStringArray $saExcludes