Sample code for 30+ languages & platforms
DataFlex

Replace/Update a FIle in a .zip

See more Zip Examples

Demonstrates how to replace/update a file from a .zip. Note: This requires the entire .zip to be rewritten.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoZip
    String sCharset
    Handle hoZip2
    Variant vEntry
    Handle hoEntry
    Boolean bTemp1

    Move False To iSuccess

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

    // First prepare a .zip and write it..
    Get Create (RefClass(cComChilkatZip)) To hoZip
    If (Not(IsComObjectCreated(hoZip))) Begin
        Send CreateComObject of hoZip
    End

    Get ComNewZip Of hoZip "qa_output/abc.zip" To iSuccess

    // Add some files..
    Move "utf-8" To sCharset
    Get ComAddString Of hoZip "a.txt" "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" sCharset To iSuccess
    Get ComAddString Of hoZip "b.txt" "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" sCharset To iSuccess
    Get ComAddString Of hoZip "c.txt" "cccccccccccccccccccccccccccccccccccc" sCharset To iSuccess

    // Write to qa_output/abc.zip
    // This .zip contains three files: a.txt, b.txt, and c.txt
    Get ComWriteZipAndClose Of hoZip To iSuccess

    // -------------------------------------------------------------------
    // Open abc.zip, replace the content of the "b.txt" entry with something else, and re-write.
    Get Create (RefClass(cComChilkatZip)) To hoZip2
    If (Not(IsComObjectCreated(hoZip2))) Begin
        Send CreateComObject of hoZip2
    End
    Get ComOpenZip Of hoZip2 "qa_output/abc.zip" To iSuccess

    Get Create (RefClass(cComChilkatZipEntry)) To hoEntry
    If (Not(IsComObjectCreated(hoEntry))) Begin
        Send CreateComObject of hoEntry
    End
    Get ComEntryOf Of hoZip2 "b.txt"     Get pvComObject of hoEntry to vEntry
vEntry To bTemp1
    If (bTemp1 = True) Begin
        Get ComReplaceString Of hoEntry "This is the new content.  bbbbbbbbbbbbbbbbbbbbbb" "utf-8" To iSuccess
    End

    // Write the modified .zip back to "abc.zip"
    Get ComWriteZipAndClose Of hoZip2 To iSuccess

    Showln "success."


End_Procedure