using System.Text.Json; using VideoDownloader.Core.Config; namespace VideoDownloader.App.Core; /// %AppData%/VideoDownloader/config.json 으로 설정 영속화 public static class ConfigStore { private static string Dir => AppPaths.DataDir; private static string FilePath => Path.Combine(Dir, "config.json"); private static readonly JsonSerializerOptions JsonOpts = new() { WriteIndented = true }; public static AppConfig Load() { try { if (File.Exists(FilePath)) return JsonSerializer.Deserialize(File.ReadAllText(FilePath)) ?? new AppConfig(); } catch { /* 손상 시 기본값 */ } return new AppConfig(); } public static void Save(AppConfig config) { try { Directory.CreateDirectory(Dir); File.WriteAllText(FilePath, JsonSerializer.Serialize(config, JsonOpts)); } catch { /* 저장 실패는 무시 */ } } }