如何在 Flutter 中将一个 tar.gz 文件拆分为多个文件?
2024-07-28
29
我有这个命令 split -b 1800k file_name.tar.gz 但不知道如何在 Dart 或 Flutter 中使用它。
我有一个 tar.gz 文件,我想将其拆分为 JSON 格式的多个文件。 这在 Dart 中可能吗?
例如,一个原始文件:file_name.tar.gz
分割后:file_name_1.json、file_name_2.json、file_name_3.json、file_name_4.json、file_name_5.json
以下这个问题的解决方案
Future<List<File>> splitFileInSegment(File file, {int chunkSize = 1800, required String cachePath, required String fileName}) async { int sizeOfFile = chunkSize * 1024; ByteData bd = await rootBundle.load(file.path); List<int> bytes = bd.buffer.asUint8List(); List<List<int>> splitBytes = []; int isHalfFileNeeded = bytes.length % sizeOfFile; int numberOfFiles = bytes.length ~/ sizeOfFile; if (isHalfFileNeeded > 0) { numberOfFiles = numberOfFiles + 1; } int offset = 0; for (int i = 0; i < numberOfFiles; i++) { int getLastIndex = 0; int bytesReached = (i + 1) * sizeOfFile; if (bytesReached <= bytes.length) { getLastIndex = bytesReached; } else { getLastIndex = offset + isHalfFileNeeded; } List<int> byteList = bytes.sublist(offset, getLastIndex); splitBytes.add(byteList); offset += sizeOfFile; } List<File> files = []; for (int index = 0; index < splitBytes.length; index++) { final File tempFile = File("$cachePath/$fileName" + "_" + "$index.json"); File file = await tempFile.writeAsBytes(splitBytes[index]); files.add(file); } return files; }更新于:1个月前
赞一波!2
相关文章
- hosts 域名映射文件
- .gitignore 忽略文件和目录
- TP6.0 自定义命令创建类文件
- Linux sed命令关键字匹配文件中整行的任意字符然后替换整行
- TP6.0 命令行生成类库文件
- Laravel 路由定义文件
- Linux 删除文件或目录 rm 命令
- ThinkPHP6.0 公共函数文件
- linux的shell脚本中如何在一个字符串中查找指定字符串是否存在
- ThinkPHP6.0自定义异常页面模板文件
- SVN文件冲突解决方案(手动解决)
- 你如何在 Python 中循环字典?
- 如何在 Anaconda 中安装 Python 包?
- 你如何在 Python 中编写自动售货机代码?
- 如何在 Python 中读取 .data 文件?
- 如何在 Python 中创建静态类数据和静态类方法?
- 在 Python 中将一个 Legendre 系列添加到另一个 Legendre 系列
- 如何在 Python 中使用 Matplotlib 创建一个空的 Figure?
- 如何在 seaborn 中创建三角相关热图?
- 如何在Python中创建AGE计算器Web App PyWebIO?
文章评论
全部评论