Sample code for 30+ languages & platforms
AutoIt 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 AutoIt Downloads

AutoIt
Local $bSuccess = False

;  Open an existing ZIP archive.
$oZip = ObjCreate("Chilkat.Zip")

$bSuccess = $oZip.OpenZip("example.zip")
If ($bSuccess = False) Then
    ConsoleWrite($oZip.LastErrorText & @CRLF)
    Exit
EndIf

;  Get the total number of entries in the ZIP archive.
Local $iNumEntries = $oZip.NumEntries

ConsoleWrite("Number of ZIP entries = " & $iNumEntries & @CRLF)

;  Create a ZipEntry object that will be reused
;  for each entry retrieved by EntryAt.
$oEntry = ObjCreate("Chilkat.ZipEntry")

;  Iterate over all ZIP entries.
Local $i = 0
While $i < $iNumEntries

    ;  Retrieve the entry at index i.
    $bSuccess = $oZip.EntryAt($i,$oEntry)
    If ($bSuccess = False) Then
        ConsoleWrite($oZip.LastErrorText & @CRLF)
        Exit
    EndIf

    ConsoleWrite("Entry " & $i & @CRLF)
    ConsoleWrite("  FileName: " & $oEntry.FileName & @CRLF)
    ConsoleWrite("  Uncompressed Length: " & $oEntry.UncompressedLength & @CRLF)
    ConsoleWrite("  Compressed Length: " & $oEntry.CompressedLength & @CRLF)
    ConsoleWrite("" & @CRLF)

    $i = $i + 1
Wend

;  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
;  

$oZip.CloseZip 

ConsoleWrite("Done." & @CRLF)