gpt4 book ai didi

android - 无法在 flutter 中提取 zipper

转载 作者:行者123 更新时间:2023-12-04 09:58:51 27 4
gpt4 key购买 nike

从服务器下载 zip 文件夹并尝试提取 zip,但 zip 有多个目录。我可以下载 zip 但无法提取它。当 zip 有多个图像文件但在我的情况下有多个目录并且有多个文件时,下面的代码可以工作。

String _localZipFileName = 'archive.zip';

Future<File> _downloadFile(String url, String fileName) async {
//url==http://115.166.142.178:3000/staff/syncdata
var req = await http.Client().get(Uri.parse(url));
Log.e("DOWNLOAD DIRECTORY",_dir);
var file = File('$_dir/$fileName');
return file.writeAsBytes(req.bodyBytes);
}

Future<void> _downloadZip(String _zipPath) async {
setState(() {
_downloading = true;
});

Log.e("Zippath",_zipPath);
_images.clear();
_tempImages.clear();
var zippedFile = await _downloadFile(_zipPath, _localZipFileName);
Log.e("Zippath",zippedFile.path);
await unarchiveAndSave(zippedFile);
setState(() {
_images.addAll(_tempImages);
_downloading = false;
});
}



unarchiveAndSave(var zippedFile) async {
var bytes = zippedFile.readAsBytesSync();
var archive = ZipDecoder().decodeBytes(bytes);

for (var file in archive) {
var fileName = '$_dir/${file.name}';
if (file.isCompressed) {
var outFile = File(fileName);
Log.e('File:: ' , outFile.path);
// _tempImages.add('${outFile.path}/productImages');
outFile = await outFile.create(recursive: true);
await outFile.writeAsBytes(file.content);
}
}
}

最佳答案

存档包有 extractFileToDisk方法应该做你想做的事。

关于android - 无法在 flutter 中提取 zipper ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61869207/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com