Tcl Requires Chilkat v11.0.0+
Tcl
Create a Zip Entirely in Memory
See more Zip Examples
Demonstrates how to create a .zip from in-memory byte data and strings, and to write the .zip to an in-memory image.Chilkat Tcl Downloads
load ./chilkat.dll
set success 0
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
set crypt [new_CkCrypt2]
set zip [new_CkZip]
set success [CkZip_NewZip $zip "test.zip"]
if {$success == 0} then {
puts [CkZip_lastErrorText $zip]
delete_CkCrypt2 $crypt
delete_CkZip $zip
exit
}
# Add the bytes 0x00 0x01 0x02 0x03 ... 0x0F as a file in the .zip
set bd [new_CkBinData]
CkBinData_AppendEncoded $bd "000102030405060708090A0B0C0D0E0F" "hex"
CkZip_AddBd $zip "binaryData.dat" $bd
# Add the string "Hello World!" to the .zip
CkZip_AddString $zip "helloWorld.txt" "Hello World!" "utf-8"
set zipFileInMemory [new_CkByteData]
set success [CkZip_WriteToMemory $zip $zipFileInMemory]
# We could save these files to a file, and it is a valid .zip
set fac [new_CkFileAccess]
set success [CkFileAccess_WriteEntireFile $fac "test.zip" $zipFileInMemory]
if {$success == 0} then {
puts [CkFileAccess_lastErrorText $fac]
delete_CkCrypt2 $crypt
delete_CkZip $zip
delete_CkBinData $bd
delete_CkByteData $zipFileInMemory
delete_CkFileAccess $fac
exit
}
puts "Zip Created!"
delete_CkCrypt2 $crypt
delete_CkZip $zip
delete_CkBinData $bd
delete_CkByteData $zipFileInMemory
delete_CkFileAccess $fac