Sample code for 30+ languages & platforms
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

Tcl

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