Dart Requires Chilkat v11.0.0+
Dart
Unzip Some Files by Iterating over Entries
See more Zip Examples
Demonstrates how to unzip specific files by iterating over entries in a .zip.Chilkat Dart Downloads
import 'package:chilkat/chilkat.dart';
void main() {
// This requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
final zip = CkZip();
// Open a .zip containing:
//
// a1.xml
// b1.xml
// c1.xml
// dir1/a2.xml
// dir1/c2.xml
// dir2/dir3/c3.xml
// We wish to unzip only a1.xml, b1.xml, and c1.xml
try {
zip.openZip('qa_data/zips/xml_files.zip');
} on ChilkatException catch (e) {
print(e.lastErrorText);
return;
}
final sbFilename = CkStringBuilder();
final entry = CkZipEntry();
final numEntries = zip.numEntries;
var i = 0;
while (i < numEntries) {
zip.entryAt(i, entry);
final entryFilePath = entry.fileName;
print(entryFilePath);
if (!entry.isDirectory) {
sbFilename.setString(entryFilePath);
if (!sbFilename.contains('/', false)) {
// Does not contain "/"
// Unzip to the qa_output directory.
try {
entry.extract('qa_output');
print('Unzipped $entryFilePath');
} on ChilkatException {
print('Failed to unzip $entryFilePath');
}
}
}
i++;
}
}