Add Multiple Files to a ZIP Using AppendFiles
See more Zip Examples
This example demonstrates how to use the AppendFiles method
to add multiple files matching wildcard patterns to a ZIP archive.
The example adds:
-
All
.txtfiles from one directory. -
All
.xmlfiles recursively from another directory tree.
The AppendFiles method adds references to matching files
in the local filesystem. The files are not actually read or compressed
until a Write* method is called.
When recursive mode is enabled (recurse = _TRUE_), relative
subdirectory paths are preserved within the ZIP archive.
For example, suppose the local filesystem contains the following directory tree:
c:/data/invoices/2024/january/inv001.xml
c:/data/invoices/2024/january/inv002.xml
c:/data/invoices/2024/february/inv003.xml
And the following call is made:
zip.AppendFiles("c:/data/*.xml",_TRUE_);
Then the following paths will be stored in the ZIP archive:
invoices/2024/january/inv001.xml
invoices/2024/january/inv002.xml
invoices/2024/february/inv003.xml
The portion of the path preceding the wildcard root
(c:/data/) is not stored in the ZIP archive.
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoZip
String sTemp1
Move False To iSuccess
Get Create (RefClass(cComChilkatZip)) To hoZip
If (Not(IsComObjectCreated(hoZip))) Begin
Send CreateComObject of hoZip
End
Get ComNewZip Of hoZip "appendFilesExample.zip" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoZip To sTemp1
Showln sTemp1
Procedure_Return
End
// Add all .txt files from c:/reports.
// Subdirectories are not included because recurse=ckfalse.
Get ComAppendFiles Of hoZip "c:/reports/*.txt" False To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoZip To sTemp1
Showln sTemp1
Procedure_Return
End
// Add all .xml files recursively from c:/data.
// Relative subdirectory paths are preserved within the ZIP archive.
Get ComAppendFiles Of hoZip "c:/data/*.xml" True To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoZip To sTemp1
Showln sTemp1
Procedure_Return
End
// Write the ZIP archive to disk and close it.
// The source files are consumed at this time.
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