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

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

Lua
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.")