A Dart library to encode and decode various archive and compression formats.
The library has no reliance on dart:io
, so it can be used for both server and web applications.
The archive library currently supports the following decoders:
And the following encoders:
Extract the contents of a Zip file, and encode the contents as a BZip2 compressed Tar file:
import 'dart:io'; import 'package:archive/archive.dart'; void main() { // Read the Zip file from disk. List<int> bytes = new File('test.zip').readAsBytesSync(); // Decode the Zip file Archive archive = new ZipDecoder().decodeBytes(bytes); // Extract the contents of the Zip archive to disk. for (ArchiveFile file in archive) { String filename = file.name; List<int> data = file.content; new File('out/' + filename) ..createSync(recursive: true) ..writeAsBytesSync(data); } // Encode the archive as a BZip2 compressed Tar file. List<int> tar_data = new TarEncoder().encode(archive); List<int> tar_bz2 = new BZip2Encoder().encode(tar_data); // Write the compressed tar file to disk. File fp = new File(filename + '.tbz'); fp.writeAsBytesSync(tar_bz2); }