728x90
public class MySettings { public int MyNumber { get; set; } public string MyString { get; set; } public void Save() { using (Stream stream = File.Create(SettingsFile)) using (StreamWriter writer = new StreamWriter(stream, Encoding.UTF8)) { writer.WriteLine(MyNumber); writer.WriteLine(MyString); } } public static MySettings Load() { if (!File.Exists(SettingsFile)) return DefaultSettings; using (Stream stream = File.OpenRead(SettingsFile)) using (StreamReader reader = new StreamReader(stream, Encoding.UTF8)) { try { string firstLine = reader.ReadLine(); string secondLine = reader.ReadLine(); return new MySettings { MyNumber = int.Parse(firstLine), MyString = secondLine, }; } catch (FormatException) { stream.Close(); File.Delete(SettingsFile); return DefaultSettings; } } } private static string SettingsFolder { get { string folder = Environment.GetFolderPath( Environment.SpecialFolder.ApplicationData); folder = Path.Combine(folder, "MyCompany"); folder = Path.Combine(folder, "MyApp"); if (!Directory.Exists(folder)) Directory.CreateDirectory(folder); return folder; } } private static string SettingsFile { get { return Path.Combine(SettingsFolder, "settings.txt"); } } private static MySettings DefaultSettings { get { return new MySettings { MyNumber = 0, MyString = "", }; } } }
윈도우 7 & 8 의 경우는 ApplicationData 가 사용자의 AppData 를 참조하게 된다.
이후, subfolder 로 Company/App 순으로 폴더를 지정해서 사용한다.
해당 폴더가 없으면, 생성까지 한다.
728x90
728x90