Files
fforte/lib/screens/sharedMethods/save_file.dart
2025-06-03 22:31:55 +02:00

39 lines
1.1 KiB
Dart

import 'dart:convert';
import 'dart:io';
import 'package:fforte/enums/databases.dart';
import 'package:fforte/screens/excursion/exceptions/file_dialog_cancelled.dart';
import 'package:file_picker/file_picker.dart';
import 'package:flutter/foundation.dart';
import 'package:shared_preferences/shared_preferences.dart';
class SaveFileMethod {
static Future<void> saveFile(
Map<String, String> place,
int id,
String fileNameLocalization,
DatabasesEnum dbType,
) async {
try {
String? selectedDirectory = await FilePicker.platform.getDirectoryPath();
if (selectedDirectory == null) {
throw FileDialogCancelled();
}
SharedPreferences prefs = await SharedPreferences.getInstance();
String jsonPlace = jsonEncode(place);
await prefs.setString('saveDir', selectedDirectory);
File file = File(
'$selectedDirectory/$fileNameLocalization-$id-${dbType == DatabasesEnum.place ? place["CID"] : place["Datum"]!.split(" ").first}.txt',
);
await file.writeAsString(jsonPlace);
} catch (e) {
debugPrint(e.toString());
}
}
}