Flutter 如何创建一个 zip 文件

标签 flutter

如何使用 Flutter 创建 zip 文件?我尝试使用存档包,但它没有任何示例来创建 zip 文件。请帮忙。我是 Flutter 的新手。使用存档包创建 zip 文件后,解压缩 zip 文件时出错。

对于存档包,这就是我所做的:

  void _generateItemArchive(ZipFileEncoder encoder, int id) async {
List<Item> _itemList = await DBProvider.db.getAllItem(id);
_itemList.forEach((Item _item) {
  encoder.addFile(File(_item.photo));
});

ZipFileEncoder encoder = ZipFileEncoder();
encoder.create(join(documentsDirectory.path, 'product.zip'));

encoder.addFile(File('${documentsDirectory.path}/TestDB.db'));

List<Supplier> _supplierList = await DBProvider.db.getAllSupplier();
_supplierList.forEach((Supplier _supplier) {
  encoder.addFile(File(_supplier.photo));
  _generateItemArchive(encoder, _supplier.id);
});

当我尝试调用 encoder.close() 时出现错误;我需要从数据库记录中添加文件。

最佳答案

将此添加到您的“pubspec.yaml”文件中(来自 https://pub.dev/packages/archive)

archive: ^3.1.6

将其导入您的 dart 文件:

import 'package:archive/archive.dart';

最后:

Directory appDocDirectory = await getExternalStorageDirectory();
var encoder = ZipFileEncoder();
encoder.create(appDocDirectory.path+"/"+'jay.zip');
encoder.addFile(File(selectedAdharFile));
encoder.addFile(File(selectedIncomeFile));
encoder.close();

关于Flutter 如何创建一个 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56410086/

相关文章:

flutter - flutter 列表返回实例

android - flutter 多指按下事件

ios - Flutter IOS 产品口味未运行

flutter - 有没有办法获取现有小部件的大小?

flutter : How to increase indentation width of tab '\t' in text

flutter - 如何修复 flutter app 在启动过程中的延迟?

flutter - TextFormField横向 View 用 flutter 的键盘填充屏幕?

flutter - Future Builder 在每个设置状态下不断重建

firebase - Flutter:如何使用FieldValue.arrayRemove?

flutter - 小部件不会在 Flutter 中到达屏幕底部?