Visual FoxPro
Visual FoxPro
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 Visual FoxPro Downloads
LOCAL lnSuccess
LOCAL loZip
LOCAL lnNumEntries
LOCAL loEntry
LOCAL i
lnSuccess = 0
lnSuccess = 0
* Open an existing ZIP archive.
loZip = CreateObject('Chilkat.Zip')
lnSuccess = loZip.OpenZip("example.zip")
IF (lnSuccess = 0) THEN
? loZip.LastErrorText
RELEASE loZip
CANCEL
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('Chilkat.ZipEntry')
* Iterate over all ZIP entries.
i = 0
DO WHILE i < lnNumEntries
* Retrieve the entry at index i.
lnSuccess = loZip.EntryAt(i,loEntry)
IF (lnSuccess = 0) THEN
? loZip.LastErrorText
RELEASE loZip
RELEASE loEntry
CANCEL
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