Sample code for 30+ languages & platforms
Dart

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 Dart Downloads

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

void main() {
  var success = false;

  final zip = CkZip();

  // Open an existing ZIP archive.
  try {
    zip.openZip('qa_data/zips/documents.zip');
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Locate the PDF entry within the ZIP archive.
  final entry = CkZipEntry();

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

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

  try {
    entry.unzipToBd(pdfData);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  print('Uncompressed size = ${pdfData.numBytes}');
  print('');

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

  zip.closeZip();

  print('PDF extracted successfully.');
}