zipImageAndCsv method
Implementation
Future<String> zipImageAndCsv({
required String zipFileName,
required String imageFilePath,
required List<String> csvFilePath,
}) async {
try {
final directory = await getTemporaryDirectory();
final zipFilePath = '${directory.path}/$zipFileName';
final zipFile = File(zipFilePath);
final archive = Archive();
final fileName = imageFilePath.split('/').last;
final imageFile = File(imageFilePath);
final imageBytes = await imageFile.readAsBytes();
archive.addFile(ArchiveFile(fileName, imageBytes.length, imageBytes));
if (csvFilePath.isEmpty) {
throw Exception('csvファイルが存在しません');
}
for (final path in csvFilePath) {
// pathからファイル名を取得
final fileName = path.split('/').last;
final csvFile = File(path);
final csvBytes = await csvFile.readAsBytes();
archive.addFile(ArchiveFile(fileName, csvBytes.length, csvBytes));
}
final zipData = ZipEncoder().encode(archive);
if (zipData == null) {
throw Exception('zipファイルの作成に失敗しました');
}
await zipFile.writeAsBytes(zipData);
return zipFilePath;
} catch (e) {
throw Exception('zipファイルの作成に失敗しました: $e');
}
}