Sample code for 30+ languages & platforms
AutoIt

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

$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)