Files
AohCopyRou/AppConfig.cs
2025-12-18 20:21:02 +08:00

83 lines
2.7 KiB
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Text.Json;
namespace CopyRou
{
public class AppConfig
{
public List<string> SourcePaths { get; set; } = new();
public string DestPath { get; set; } = string.Empty;
private static readonly string ConfigPath = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
"CopyRou", "config.json");
public static AppConfig Load()
{
try
{
if (File.Exists(ConfigPath))
{
var json = File.ReadAllText(ConfigPath);
return JsonSerializer.Deserialize<AppConfig>(json) ?? new AppConfig();
}
}
catch (Exception ex)
{
// 如果加载失败,返回默认配置
System.Diagnostics.Debug.WriteLine($"加载配置失败: {ex.Message}");
}
return new AppConfig
{
SourcePaths = new List<string>
{
@"Z:\Routing\A1-ROUTING\NEW-ROUTING",
@"Z:\Routing\A2-ROUTING\NEW-ROUTING"
},
DestPath = @"D:\ARPTWork\rou"
};
}
public void Save()
{
try
{
var directory = Path.GetDirectoryName(ConfigPath);
if (!string.IsNullOrEmpty(directory) && !Directory.Exists(directory))
Directory.CreateDirectory(directory);
var json = JsonSerializer.Serialize(this, new JsonSerializerOptions { WriteIndented = true });
File.WriteAllText(ConfigPath, json);
}
catch (Exception ex)
{
System.Diagnostics.Debug.WriteLine($"保存配置失败: {ex.Message}");
}
}
public string GetSourcePathsText()
{
return string.Join(Environment.NewLine, SourcePaths);
}
public void SetSourcePathsFromText(string text)
{
SourcePaths.Clear();
if (!string.IsNullOrWhiteSpace(text))
{
var paths = text.Split(new[] { Environment.NewLine, "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries);
foreach (var path in paths)
{
var trimmedPath = path.Trim();
if (!string.IsNullOrEmpty(trimmedPath))
{
SourcePaths.Add(trimmedPath);
}
}
}
}
}
}