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

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // Open an existing ZIP archive.
  final zip = CkZip();

  try {
    zip.openZip('example.zip');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Get the total number of entries in the ZIP archive.
  final numEntries = zip.numEntries;

  print('Number of ZIP entries = $numEntries');

  // Create a ZipEntry object that will be reused
  // for each entry retrieved by EntryAt.
  final entry = CkZipEntry();

  // Iterate over all ZIP entries.
  var i = 0;
  while (i < numEntries) {

    // Retrieve the entry at index i.
    try {
      zip.entryAt(i, entry);
    } on ChilkatException catch (e) {
      print(e.lastErrorText);
      return;
    }

    print('Entry $i');
    print('  FileName: ${entry.fileName}');
    print('  Uncompressed Length: ${entry.uncompressedLength}');
    print('  Compressed Length: ${entry.compressedLength}');
    print('');

    i++;
  }

  // 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();

  print('Done.');
}