unzip method

dynamic unzip(
  1. String zipFileName,
  2. String extractLocation,
  3. String extractTo,
  4. bool isAsset,
)

Implementation

unzip(String zipFileName,
    String extractLocation,
    String extractTo,
    bool isAsset,) async {
  Directory extractDir = await Directory('$extractLocation/$extractTo');

  var data = await FileRF.toByteData(zipFileName, isAsset);
  List<int> content = <int>[data.lengthInBytes];
  for (var i = 0; i < data.lengthInBytes; i++)
    content[i] = data.getUint8(i);
  Archive archive = ZipDecoder().decodeBytes(content);

  for (ArchiveFile file in archive) {
    if (file.isFile) {
      List<int> data = file.content;
      File('${extractDir.path}/${file.name}')
        ..createSync(recursive: true)
        ..writeAsBytesSync(data);
    } else {
      Directory('${extractDir.path}/${file.name}')
        ..createSync(recursive: true);
    }
  }
}