如何在 Flutter 中将一个 tar.gz 文件拆分为多个文件?
我有这个命令 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; }
本站发布的内容若侵犯到您的权益,请邮件联系站长删除,我们将及时处理!
从您进入本站开始,已表示您已同意接受本站【免责声明】中的一切条款!
本站大部分下载资源收集于网络,不保证其完整性以及安全性,请下载后自行研究。
本站资源仅供学习和交流使用,版权归原作者所有,请勿商业运营、违法使用和传播!请在下载后24小时之内自觉删除。
若作商业用途,请购买正版,由于未及时购买和付费发生的侵权行为,使用者自行承担,概与本站无关。