Sample code for 30+ languages & platforms
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

DataFlex
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