using System; using System.IO; using System.Windows.Forms; using Newtonsoft.Json; namespace Test_ACS { /// /// 애플리케이션 설정을 관리하는 클래스 /// public class AppSettings { public string LastPort { get; set; } = "COM1"; public string LastBaudRate { get; set; } = "9600"; public string LastRFID { get; set; } = "0001"; public string LastAlias { get; set; } = "CHARGER1"; public int LastAGV { get; set; } = 11; private static string GetConfigFilePath() { // 실행 파일과 같은 폴더에 같은 이름으로 .config 파일 생성 string exePath = Application.ExecutablePath; string exeName = Path.GetFileNameWithoutExtension(exePath); string configPath = Path.Combine(Path.GetDirectoryName(exePath), exeName + ".config"); return configPath; } /// /// 설정 파일을 로드합니다 /// public static AppSettings Load() { try { string configPath = GetConfigFilePath(); if (File.Exists(configPath)) { string json = File.ReadAllText(configPath); return JsonConvert.DeserializeObject(json); } } catch (Exception) { // 로드 실패 시 기본값 반환 } return new AppSettings(); } /// /// 설정을 파일에 저장합니다 /// public void Save() { try { string configPath = GetConfigFilePath(); string json = JsonConvert.SerializeObject(this, Formatting.Indented); File.WriteAllText(configPath, json); } catch (Exception) { // 저장 실패 시 무시 } } } }