cacheFile method

Future<File> cacheFile({
  1. required String name,
  2. required String mimeExt,
  3. required List<int> byte,
})

Implementation

Future<File> cacheFile({
  required String name,
  required String mimeExt,
  required List<int> byte,
}) async {
  final isGranted = await requestWriteExternalStoragePermission();
  if (isGranted) {
    try {
      // Directory? dir;
      // if (Platform.isIOS) {
      //   dir = await getApplicationCacheDirectory();
      // } else {
      //   dir = await getExternalStorageDirectory();
      // }
      Directory dir = await getTemporaryDirectory();

      var now = DateTime.now().millisecondsSinceEpoch;
      var fileName = '$name-$now.$mimeExt';
      final file = File('${dir.path}/$fileName');
      var raf = file.openSync(mode: FileMode.write);
      raf.writeFromSync(byte);
      await raf.close();
      return file;
    } catch (e) {
      rethrow;
    }
  } else {
    throw "Permission refused";
  }
}