Sample code for 30+ languages & platforms
React Native

Unzip a ZIP Entry Directly into a BinData Object Using ZipEntry.UnzipToBd

See more Zip Examples

This example demonstrates how to use the ZipEntry.UnzipToBd method to inflate a ZIP entry directly into a BinData object.

The entry contents are uncompressed entirely in memory without creating a file on disk.

This is useful when:

  • Processing ZIP entry data entirely in memory
  • Avoiding temporary filesystem files
  • Working with binary files such as images, PDFs, or certificates
  • Passing uncompressed ZIP data directly to other APIs

The example opens a ZIP archive, locates a PDF entry, inflates it into a BinData object, and then writes the uncompressed bytes to a new file.

Suppose the ZIP archive contains:

docs/report.pdf

The entry is uncompressed directly into memory before optionally being saved to:

qa_output/report.pdf

Chilkat React Native Downloads

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

async function chilkatExample() {
  let success = false;

  const zip = new Zip();

  // Open an existing ZIP archive.
  try {
    await zip.openZipAsync('qa_data/zips/documents.zip');
  } catch {
    console.log(zip.lastErrorText);
    return;
  }

  // Locate the PDF entry within the ZIP archive.
  const entry = new ZipEntry();

  success = zip.entryOf('docs/report.pdf', entry);
  if (!success) {
    console.log('ZIP entry not found.');
    zip.closeZip();
    return;
  }

  // ------------------------------------------------------------
  // Inflate the ZIP entry directly into a BinData object.
  // 
  // The uncompressed bytes are stored entirely in memory.
  // 
  const pdfData = new BinData();

  try {
    await entry.unzipToBdAsync(pdfData);
  } catch {
    console.log(entry.lastErrorText);
    return;
  }

  console.log(`Uncompressed size = ${pdfData.numBytes}`);
  console.log('');

  // ------------------------------------------------------------
  // Optionally save the uncompressed bytes to a file.
  // 
  try {
    pdfData.writeFile('qa_output/report.pdf');
  } catch {
    console.log(pdfData.lastErrorText);
    return;
  }

  zip.closeZip();

  console.log('PDF extracted successfully.');
}