Lua
Lua
Create Zip in a BinData Object
See more Zip Examples
Recursively appends files in a directory tree and writes a zip archive into a Chilkat BinData object.Chilkat Lua Downloads
local chilkat = require("chilkat")
-- This example assumes the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
local zip = chilkat.Zip.new()
-- Initialize the zip object. Because we will never actually write a zip file to the filesystem,
-- the filepath passed to NewZip does not matter.
local success = zip:new_zip("x.zip")
if not success then
print(zip.last_error_text)
return
end
-- Append a directory tree. The call to AppendFiles does
-- not read the file contents or append them to the zip
-- object in memory. It simply appends references
-- to the files so that when WriteBd, WriteZip, or WriteZipAndClose
-- is called, the referenced files are streamed and compressed
-- into the .zip output file (or BinData object).
local recurse = true
success = zip:append_files("c:/temp/a/*", recurse)
if not success then
print(zip.last_error_text)
return
end
-- Write the zip archive into the bdZip object.
local bdZip = chilkat.BinData.new()
success = zip:write_bd(bdZip)
if not success then
print(zip.last_error_text)
return
end
-- We could directly access the bytes of the zip archive, or perhaps
-- get the zip bytes in base64 format.
local zipAsBase64 = bdZip:get_encoded("base64")
print(zipAsBase64)
-- Or the zip can be used by some other Chilkat method call that accepts
-- a BinData object as an argument.