using Newtonsoft.Json; using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace videoGather { public static class ConfigHelper { private static readonly string ConfigFolder = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Config"); /// /// 保存配置到指定名称的配置文件 /// /// 配置数据类型 /// 配置文件名(无需扩展名) /// 配置数据 public static void Save(string configName, T data) { if (!Directory.Exists(ConfigFolder)) { Directory.CreateDirectory(ConfigFolder); } var filePath = GetConfigPath(configName); var json = JsonConvert.SerializeObject(data, Formatting.Indented); File.WriteAllText(filePath, json); } /// /// 读取指定配置文件的配置数据 /// /// 配置数据类型 /// 配置文件名(无需扩展名) /// 当配置不存在时的默认值 public static T Load(string configName, T defaultValue = default) { var filePath = GetConfigPath(configName); if (!File.Exists(filePath)) { return defaultValue; } try { var json = File.ReadAllText(filePath); return JsonConvert.DeserializeObject(json); } catch { return defaultValue; } } private static string GetConfigPath(string configName) { return Path.Combine(ConfigFolder, $"{configName}.config.json"); } } }