Lianja
Lianja
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 Lianja Downloads
llSuccess = .F.
llSuccess = .F.
// Open an existing ZIP archive.
loZip = createobject("CkZip")
llSuccess = loZip.OpenZip("example.zip")
if (llSuccess = .F.) then
? loZip.LastErrorText
release loZip
return
endif
// Get the total number of entries in the ZIP archive.
lnNumEntries = loZip.NumEntries
? "Number of ZIP entries = " + str(lnNumEntries)
// Create a ZipEntry object that will be reused
// for each entry retrieved by EntryAt.
loEntry = createobject("CkZipEntry")
// Iterate over all ZIP entries.
i = 0
do while i < lnNumEntries
// Retrieve the entry at index i.
llSuccess = loZip.EntryAt(i,loEntry)
if (llSuccess = .F.) then
? loZip.LastErrorText
release loZip
release loEntry
return
endif
? "Entry " + str(i)
? " FileName: " + loEntry.FileName
? " Uncompressed Length: " + str(loEntry.UncompressedLength)
? " Compressed Length: " + str(loEntry.CompressedLength)
? ""
i = i + 1
enddo
// 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
//
loZip.CloseZip()
? "Done."
release loZip
release loEntry