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

React Native
import { Zip, ZipEntry } from '@chilkat/react-native'

async function chilkatExample() {
  // Open an existing ZIP archive.
  const zip = new Zip();

  try {
    await zip.openZipAsync('example.zip');
  } catch {
    console.log(zip.lastErrorText);
    return;
  }

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

  console.log(`Number of ZIP entries = ${numEntries}`);

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

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

    // Retrieve the entry at index i.
    try {
      zip.entryAt(i, entry);
    } catch {
      console.log(zip.lastErrorText);
      return;
    }

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

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

  console.log('Done.');
}