downloadFile static method
Future<String>
downloadFile({
- required String source,
- required String fileExtension,
- String? customFileName,
- BuildContext? context,
Download file to Downloads folder
Implementation
static Future<String> downloadFile({
required String source,
required String fileExtension,
String? customFileName,
BuildContext? context,
}) async {
FileData? fileData;
try {
fileData = await loadFile(source, fileExtension);
final downloadsDir = await _getDownloadsDirectory();
final fileName =
customFileName ??
'download_${DateTime.now().millisecondsSinceEpoch}$fileExtension';
final savePath = '${downloadsDir.path}/$fileName';
final file = File(savePath);
await file.writeAsBytes(fileData.bytes);
if (context != null && context.mounted) {
_showSuccess(context, 'Saved: $savePath');
}
return savePath;
} catch (e) {
if (context != null && context.mounted) {
_showError(context, 'Download error: $e');
}
rethrow;
} finally {
// ✅ Cleanup temp file after download
await fileData?.cleanup();
}
}