Lua Requires Chilkat v11.0.0+
Lua
Iterate Over ZIP Entries Using EntryAt
This example demonstrates how to use the EntryAt method to iterate over all entries contained within a ZIP archive.
The EntryAt method retrieves a ZipEntry object for a given zero-based index.
This is useful for:
- Enumerating all entries in a ZIP archive
- Inspecting filenames, sizes, and timestamps
- Searching or filtering ZIP contents
Suppose the ZIP archive contains:
docs/readme.txt
images/logo.png
data/config.json The example loops through all ZIP entries and prints information about each entry.
Chilkat Lua Downloads
local chilkat = require("chilkat")
-- Open an existing ZIP archive.
local zip = chilkat.Zip.new()
local success = zip:open_zip("example.zip")
if not success then
print(zip.last_error_text)
return
end
-- Get the total number of entries in the ZIP archive.
local numEntries = zip.num_entries
print("Number of ZIP entries = " .. numEntries)
-- Create a ZipEntry object that will be reused
-- for each entry retrieved by EntryAt.
local entry = chilkat.ZipEntry.new()
-- Iterate over all ZIP entries.
local i = 0
while i < numEntries do
-- Retrieve the entry at index i.
success = zip:entry_at(i, entry)
if not success then
print(zip.last_error_text)
return
end
print("Entry " .. i)
print(" FileName: " .. entry.file_name)
print(" Uncompressed Length: " .. entry.uncompressed_length)
print(" Compressed Length: " .. entry.compressed_length)
print("")
i = i + 1
end
-- Sample output:
--
-- Entry 0
-- FileName: docs/readme.txt
-- Uncompressed Length: 1204
-- Compressed Length: 512
--
-- Entry 1
-- FileName: images/logo.png
-- Uncompressed Length: 84211
-- Compressed Length: 84102
--
zip:close_zip()
print("Done.")