PureBasic
PureBasic
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 PureBasic Downloads
IncludeFile "CkZip.pb"
IncludeFile "CkZipEntry.pb"
Procedure ChilkatExample()
success.i = 0
; 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..
zip.i = CkZip::ckCreate()
If zip.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkZip::ckNewZip(zip,"qa_output/abc.zip")
; Add some files..
charset.s = "utf-8"
CkZip::ckAddString(zip,"a.txt","aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",charset)
CkZip::ckAddString(zip,"b.txt","bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",charset)
CkZip::ckAddString(zip,"c.txt","cccccccccccccccccccccccccccccccccccc",charset)
; Write to qa_output/abc.zip
; This .zip contains three files: a.txt, b.txt, and c.txt
success = CkZip::ckWriteZipAndClose(zip)
; -------------------------------------------------------------------
; Open abc.zip, replace the content of the "b.txt" entry with something else, and re-write.
zip2.i = CkZip::ckCreate()
If zip2.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
CkZip::ckOpenZip(zip2,"qa_output/abc.zip")
entry.i = CkZipEntry::ckCreate()
If entry.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
If CkZip::ckEntryOf(zip2,"b.txt",entry) = 1
CkZipEntry::ckReplaceString(entry,"This is the new content. bbbbbbbbbbbbbbbbbbbbbb","utf-8")
EndIf
; Write the modified .zip back to "abc.zip"
success = CkZip::ckWriteZipAndClose(zip2)
Debug "success."
CkZip::ckDispose(zip)
CkZip::ckDispose(zip2)
CkZipEntry::ckDispose(entry)
ProcedureReturn
EndProcedure