DataFlex
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
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