Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-04-29 12:47:14 +08:00
parent c7864ff4a3
commit cd26cf6d98
104 changed files with 482 additions and 391 deletions

View File

@@ -0,0 +1,34 @@
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<void> saveBytes2File({
required String name,
required Uint8List bytes,
required List<String> 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");
}
}
}