Sample code for 30+ languages & platforms
Lua Requires Chilkat v11.0.0+

Modify Name of File Stored within Zip when Creating a .zip

See more Zip Examples

Demonstrates how to create a zip where the filename within the .zip is different than the filename that was added from the filesystem.

Chilkat Lua Downloads

Lua
local chilkat = require("chilkat")

-- This example requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.

local zip = chilkat.Zip.new()

-- Intialize the zip object by calling NewZip.
local success = zip:new_zip("myZip.zip")

-- Add a reference to a file on disk to the zip object.
-- (When appending files to a zip, the files are not actually
-- read into memory.  References to the file(s) are added.
-- When WriteZip is called, the referenced files are streamed in
-- and compressed to the .zip.)
local saveExtraPath = false
success = zip:add_file("/temp/a/hamlet.xml", saveExtraPath)
if not success then
    print(zip.last_error_text)
    return
end

-- The zip object references a single file.
-- Retrieve the entry object...
local entry = chilkat.ZipEntry.new()
zip:entry_at(0, entry)

-- Set the entry's filename to anything you want:
entry.file_name = "somethingElse.xml"

-- Note: Internally, the zip component retains the name of
-- the file referenced.  The current setting of the zip entry's
-- FileName property is stored in the .zip when writing.

-- The zip written here will contain somethingElse.xml
success = zip:write_zip_and_close()
if not success then
    print(zip.last_error_text)
else
    print("Zip created!")
end