DataFlex
DataFlex
Extract ZIP Files Without Preserving Directory Paths Using DiscardPaths
See more Zip Examples
This example demonstrates how to use the DiscardPaths property to extract files from a ZIP archive without recreating the stored directory structure.
When DiscardPaths is set to _TRUE_, all extracted files are written directly into the target extraction directory, and any stored ZIP path information is ignored.
This is useful when:
- Flattening ZIP contents into a single directory
- Ignoring stored subdirectory structures during extraction
- Extracting only the files themselves without recreating folders
Suppose the ZIP archive contains:
docs/readme.txt
docs/manual.pdf
images/logo.png Normally, extracting the ZIP would create:
output/docs/readme.txt
output/docs/manual.pdf
output/images/logo.png But when DiscardPaths is set to _TRUE_, the extracted files become:
output/readme.txt
output/manual.pdf
output/logo.png The stored ZIP directory paths are discarded during extraction.
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoZip
Integer iNumFilesUnzipped
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
// Open an existing ZIP archive.
Get ComOpenZip Of hoZip "example.zip" To iSuccess
If (iSuccess = False) Begin
Get ComLastErrorText Of hoZip To sTemp1
Showln sTemp1
Procedure_Return
End
// Discard stored ZIP paths during extraction.
//
// When DiscardPaths = True, all files are extracted
// directly into the target directory without recreating
// the ZIP directory structure.
Set ComDiscardPaths Of hoZip To True
// Extract all files to the output directory.
//
// Even if the ZIP contains:
//
// docs/readme.txt
// docs/manual.pdf
// images/logo.png
//
// The extracted files become:
//
// c:/output/readme.txt
// c:/output/manual.pdf
// c:/output/logo.png
//
Get ComUnzip Of hoZip "c:/output" To iNumFilesUnzipped
If (iNumFilesUnzipped < 0) Begin
Get ComLastErrorText Of hoZip To sTemp1
Showln sTemp1
Procedure_Return
End
Showln "Number of files extracted = " iNumFilesUnzipped
Send ComCloseZip To hoZip
Showln "Files extracted successfully."
End_Procedure