如何使用 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));
});
Run Code Online (Sandbox Code Playgroud)
}
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);
});
Run Code Online (Sandbox Code Playgroud)
当我尝试调用编码器.close(); 时出现错误 我需要从数据库记录添加文件。
将其添加到您的“pubspec.yaml”文件中(来自https://pub.dev/packages/archive)
archive: ^3.1.6
Run Code Online (Sandbox Code Playgroud)
将其导入到您的 dart 文件中:
import 'package:archive/archive.dart';
Run Code Online (Sandbox Code Playgroud)
最后:
Directory appDocDirectory = await getExternalStorageDirectory();
var encoder = ZipFileEncoder();
encoder.create(appDocDirectory.path+"/"+'jay.zip');
encoder.addFile(File(selectedAdharFile));
encoder.addFile(File(selectedIncomeFile));
encoder.close();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13774 次 |
| 最近记录: |