PowerShell
PowerShell
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 PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
$success = $false
# Open an existing ZIP archive.
$zip = New-Object Chilkat.Zip
$success = $zip.OpenZip("example.zip")
if ($success -eq $false) {
$($zip.LastErrorText)
exit
}
# Get the total number of entries in the ZIP archive.
$numEntries = $zip.NumEntries
$("Number of ZIP entries = " + $numEntries)
# Create a ZipEntry object that will be reused
# for each entry retrieved by EntryAt.
$entry = New-Object Chilkat.ZipEntry
# Iterate over all ZIP entries.
$i = 0
while ($i -lt $numEntries) {
# Retrieve the entry at index i.
$success = $zip.EntryAt($i,$entry)
if ($success -eq $false) {
$($zip.LastErrorText)
exit
}
$("Entry " + $i)
$(" FileName: " + $entry.FileName)
$(" Uncompressed Length: " + $entry.UncompressedLength)
$(" Compressed Length: " + $entry.CompressedLength)
$("")
$i = $i + 1
}
# 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
#
$zip.CloseZip()
$("Done.")