Tcl
Tcl
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 Tcl Downloads
load ./chilkat.dll
set success 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..
set zip [new_CkZip]
CkZip_NewZip $zip "qa_output/abc.zip"
# Add some files..
set charset "utf-8"
CkZip_AddString $zip "a.txt" "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" $charset
CkZip_AddString $zip "b.txt" "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb" $charset
CkZip_AddString $zip "c.txt" "cccccccccccccccccccccccccccccccccccc" $charset
# Write to qa_output/abc.zip
# This .zip contains three files: a.txt, b.txt, and c.txt
set success [CkZip_WriteZipAndClose $zip]
# -------------------------------------------------------------------
# Open abc.zip, replace the content of the "b.txt" entry with something else, and re-write.
set zip2 [new_CkZip]
CkZip_OpenZip $zip2 "qa_output/abc.zip"
set entry [new_CkZipEntry]
if {[CkZip_EntryOf $zip2 "b.txt" $entry] == 1} then {
CkZipEntry_ReplaceString $entry "This is the new content. bbbbbbbbbbbbbbbbbbbbbb" "utf-8"
}
# Write the modified .zip back to "abc.zip"
set success [CkZip_WriteZipAndClose $zip2]
puts "success."
delete_CkZip $zip
delete_CkZip $zip2
delete_CkZipEntry $entry