Sample code for 30+ languages & platforms
DataFlex

Modify Name of File Stored within Zip when Creating a .zip

See more Zip Examples

Demonstrates how to create a zip where the filename within the .zip is different than the filename that was added from the filesystem.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoZip
    Boolean iSaveExtraPath
    Variant vEntry
    Handle hoEntry
    String sTemp1

    Move False To iSuccess

    // This example requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    Get Create (RefClass(cComChilkatZip)) To hoZip
    If (Not(IsComObjectCreated(hoZip))) Begin
        Send CreateComObject of hoZip
    End

    // Intialize the zip object by calling NewZip.
    Get ComNewZip Of hoZip "myZip.zip" To iSuccess

    // Add a reference to a file on disk to the zip object.
    // (When appending files to a zip, the files are not actually
    // read into memory.  References to the file(s) are added.
    // When WriteZip is called, the referenced files are streamed in
    // and compressed to the .zip.)
    Move False To iSaveExtraPath
    Get ComAddFile Of hoZip "/temp/a/hamlet.xml" iSaveExtraPath To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoZip To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // The zip object references a single file.
    // Retrieve the entry object...
    Get Create (RefClass(cComChilkatZipEntry)) To hoEntry
    If (Not(IsComObjectCreated(hoEntry))) Begin
        Send CreateComObject of hoEntry
    End
    Get pvComObject of hoEntry to vEntry
    Get ComEntryAt Of hoZip 0 vEntry To iSuccess

    // Set the entry's filename to anything you want:
    Set ComFileName Of hoEntry To "somethingElse.xml"

    // Note: Internally, the zip component retains the name of
    // the file referenced.  The current setting of the zip entry's
    // FileName property is stored in the .zip when writing.

    // The zip written here will contain somethingElse.xml
    Get ComWriteZipAndClose Of hoZip To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoZip To sTemp1
        Showln sTemp1
    End
    Else Begin
        Showln "Zip created!"
    End



End_Procedure