Sample code for 30+ languages & platforms
DataFlex

Add Files to a ZIP Using AddFile

See more Zip Examples

This example demonstrates how to use the AddFile method to add files from the local filesystem to a ZIP archive.

The example adds two files:

  • One file with its relative directory path preserved
  • One file stored using only its filename

The AddFile method adds references to local filesystem files. The files are not actually read or compressed until a Write* method is called.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoZip
    Boolean iSaveExtraPath
    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 "addFileExample.zip" To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoZip To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Add a file and preserve its relative directory structure
    // within the ZIP archive.
    // 
    // The following file:
    //     c:/projects/app/docs/readme.txt
    // 
    // Will be stored in the ZIP as:
    //     projects/app/docs/readme.txt
    // 
    Move True To iSaveExtraPath
    Get ComAddFile Of hoZip "c:/projects/app/docs/readme.txt" iSaveExtraPath To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoZip To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Add a file using only the filename in the ZIP archive.
    // 
    // The following file:
    //     c:/temp/logo.png
    // 
    // Will be stored in the ZIP as:
    //     logo.png
    // 
    Move False To iSaveExtraPath
    Get ComAddFile Of hoZip "c:/temp/logo.png" iSaveExtraPath 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