Decomprimere archivi in Dart

Mattepuffo's logo
Decomprimere archivi in Dart

Decomprimere archivi in Dart

In Dart abbiamo la libreria archive che ci permette di manipolare i file compressi in maniera abbastanza semplice.

Qui vediamo come usarla per decomprimere un archivio.

Sono supportati la maggior parte dei formati, che potete vedere sul sito ufficiale.

Prima di tutto installate la dipendenza agguingendola al file pubspec.yaml:

dependencies:
  archive: ^3.3.1

Un primo esempio prevede l'uso della funzione extractFileToDisk:

void main() {
  extractFileToDisk('/home/fermat/Scrivania/files.zip', '/home/fermat/Scrivania/output');
}

Nel secondo esempio usiamo extractArchiveToDisk:

void main() {
  final inputStream = InputFileStream('/home/fermat/Scrivania/files.zip');
  final archive = ZipDecoder().decodeBuffer(inputStream);
  extractArchiveToDisk(archive, '/home/fermat/Scrivania/output');
}

Il risultato in realtà è il medesimo, almeno per questo esempio.

Se invece vogliamo avere un maggior controllo:

void main() {
  final inputStream = InputFileStream('/home/fermat/Scrivania/files.zip');
  final archive = ZipDecoder().decodeBuffer(inputStream);
  for (var file in archive.files) {
    if (file.isFile) {
      print(file.name);
      final outputStream = OutputFileStream('/home/fermat/Scrivania/output/${file.name}');
      file.writeContent(outputStream);
      outputStream.close();
    }
  }
}

Enjoy!


Condividi

Commentami!