import 'dart:io' show File; import 'dart:typed_data' show Uint8List; import 'package:PiliPlus/utils/platform_utils.dart'; import 'package:file_picker/file_picker.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; abstract final class StorageUtils { static Future saveBytes2File({ required String name, required Uint8List bytes, required List allowedExtensions, FileType type = FileType.custom, }) async { try { final path = await FilePicker.saveFile( allowedExtensions: allowedExtensions, type: type, fileName: name, bytes: PlatformUtils.isDesktop ? null : bytes, ); if (path == null) { SmartDialog.showToast("取消保存"); return; } if (PlatformUtils.isDesktop) { await File(path).writeAsBytes(bytes); } SmartDialog.showToast("已保存"); } catch (e) { SmartDialog.showToast("保存失败: $e"); } } }