DataFlex
DataFlex
Exclude Multiple Directories When Adding Files to a ZIP
See more Zip Examples
This example demonstrates how to use the ExcludeDir method to exclude specific directory names when recursively adding files to a ZIP archive.
The ExcludeDir method excludes directories by name. Any directory matching an excluded name is skipped entirely, including all files and subdirectories beneath it.
This is useful for excluding directories such as:
-
.git -
node_modules -
bin -
obj - Temporary or cache directories
Call ExcludeDir once for each directory name to exclude.
Suppose the local filesystem contains:
c:/project/src/main.cpp
c:/project/src/util.cpp
c:/project/bin/app.exe
c:/project/obj/main.obj
c:/project/.git/config
c:/project/node_modules/library/index.js After excluding bin, obj, .git, and node_modules, only the files beneath src are added to the ZIP archive.
The resulting ZIP archive contains:
project/src/main.cpp
project/src/util.cpp
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoZip
Boolean iRecurse
Boolean iSaveExtraPath
Boolean iArchiveOnly
Boolean iIncludeHidden
Boolean iIncludeSystem
String sTemp1
Move False To iSuccess
Move False To iSuccess
Get Create (RefClass(cComChilkatZip)) To hoZip
If (Not(IsComObjectCreated(hoZip))) Begin
Send CreateComObject of hoZip
End
Get ComNewZip Of hoZip "project.zip" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoZip To sTemp1
Showln sTemp1
Procedure_Return
End
// Exclude several directory names.
//
// Any directory matching one of these names will be skipped
// during recursive file appending.
Send ComExcludeDir To hoZip "bin"
Send ComExcludeDir To hoZip "obj"
Send ComExcludeDir To hoZip ".git"
Send ComExcludeDir To hoZip "node_modules"
// Recursively append all files beneath c:/project.
//
// Because saveExtraPath = True, the ZIP paths will
// include "project/" as the leading directory.
Move True To iRecurse
Move True To iSaveExtraPath
Move False To iArchiveOnly
Move True To iIncludeHidden
Move False To iIncludeSystem
Get ComAppendFilesEx Of hoZip "c:/project" iRecurse iSaveExtraPath iArchiveOnly iIncludeHidden iIncludeSystem To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoZip To sTemp1
Showln sTemp1
Procedure_Return
End
// Write the ZIP archive.
Get ComWriteZipAndClose Of hoZip To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoZip To sTemp1
Showln sTemp1
Procedure_Return
End
Showln "ZIP archive created successfully."
End_Procedure