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