downloadFile method

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

Implementation

Future<File> downloadFile({
  required String name,
  required String mimeExt,
  required List<int> byte,
  // bool openFile = true,
}) async {
  final isGranted = await requestWriteExternalStoragePermission();
  if (isGranted) {
    try {
      Directory? dir;
      if (Platform.isIOS) {
        dir = await getApplicationCacheDirectory();
      } else {
        dir = await getExternalStorageDirectory();
      }
      if (dir != null) {
        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();
        // if (openFile) {
        OpenFile.open(file.path);
        // }
        return file;
      } else {
        throw "Failed to get local directory";
      }
    } catch (e) {
      rethrow;
    }
  } else {
    throw "Permission refused";
  }
}