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