A dart library for zip files / streams.
Features
Currently only the decompression function is supported.
- Support for both AES and zip standard encryption methods
- Support for Zip64 format
- Store (No Compression) and Deflate compression method
- Extract files from split zip files (Ex: z01, z02,...zip)
Usage
// Open a zip file and paras header.
final zipFile = await ZipFile.file(File('path'));
// Gat all file headers.
final headers = zipFile.fileHeaders;
// Get a zip entry source.
final entrySource = await zipFile.getEntrySource(headers.first);
// Zip entry source can be read into memory or saved to a file.
...
// Close resource
await entrySource?.close();
Or use use
and file_system
:
final fileSystem = LocalFileSystem();
final zipFile = await ZipFile.file(fileSystem.file(path));
await zipFile.openRead().use((handle) async {
for (final header in zipFile.fileHeaders) {
await zipFile.getZipEntrySource(handle, header).use((source) =>
fileSystem
.openSink(join(output, header.fileName), recursive: true)
.buffered()
.use((sink) => sink.writeFromSource(source)));
}
});