saveFile method

Future<String?> saveFile({
  1. required List<int> bytes,
  2. required String fileName,
  3. String? dialogTitle,
  4. String? initialDirectory,
  5. List<String>? allowedExtensions,
})

Implementation

Future<String?> saveFile({
  required List<int> bytes,
  required String fileName,
  String? dialogTitle,
  String? initialDirectory,
  List<String>? allowedExtensions,
}) async {
  bool hasPermission = await _checkStoragePermission();
  if (!hasPermission) return null;

  try {
    final path = await fp.FilePicker.platform.saveFile(
      dialogTitle: dialogTitle ?? 'Save File',
      fileName: fileName,
      initialDirectory: initialDirectory,
      type: allowedExtensions != null ? fp.FileType.custom : fp.FileType.any,
      allowedExtensions: allowedExtensions,
    );

    if (path != null) {
      final file = File(path);
      await file.writeAsBytes(bytes);
      return path;
    }
  } catch (e) {
    print('Error saving file: $e');
  }
  return null;
}