public static void SaveBootstrapSettings(BootstrapSettings settings, string filename) { var serializer = new DataContractSerializer(typeof(BootstrapSettings)); using (var stream = new FileStream(filename, FileMode.Create, FileAccess.Write)) using (var writer = XmlDictionaryWriter.CreateTextWriter(stream)) { serializer.WriteObject(writer, settings); } }
// ======================================== // static method // ======================================== public static BootstrapSettings LoadBootstrapSettings(string filename) { var ret = default(BootstrapSettings); try { if (File.Exists(filename)) { var serializer = new DataContractSerializer(typeof(BootstrapSettings)); using (var stream = new FileStream(filename, FileMode.Open, FileAccess.Read)) { ret = serializer.ReadObject(stream) as BootstrapSettings; } } } catch (Exception e) { Logger.Warn("Bootstrap Settings load failed", e); } if (ret == null) { ret = new BootstrapSettings(); } return(ret); }
// ======================================== // static method // ======================================== static MemopadConsts() { UnlicensedMaxMemoCreationCount = 30; UnlicensedMaxMemoLoadCount = 200; UnlicensedMaxTagCreationCount = 10; var localAppDataFolder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); AppDataRoot = Path.Combine(localAppDataFolder, @"mocha\MochaNote\4.0"); LogRoot = Path.Combine(AppDataRoot, LogRootName); BootstrapSettingsFilePath = Path.Combine(AppDataRoot, @"bootstrap.xml"); BootstrapSettings = BootstrapSettings.LoadBootstrapSettings(BootstrapSettingsFilePath); BootstrapSettingsV1FilePath = Path.Combine(localAppDataFolder, @"mocha\MochaNote\1.0\bootstrap.xml"); var myDocPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); MyDocumentsRootPath = Path.Combine(myDocPath, @"MochaNote"); AutoFileImportDirPath = Path.Combine(myDocPath, @"MochaNote\Import"); /// MemoRootの初期化 var clArgs = System.Environment.GetCommandLineArgs(); if (clArgs != null && clArgs.Length > 1) { /// コマンドライン引数からMemoRoot取得 MemoRoot = clArgs[1]; UseCommandLineMemoRoot = true; } else { /// bootstrap.xmlからMemoRoot取得 if (string.IsNullOrEmpty(BootstrapSettings.MemoRoot)) { BootstrapSettings.MemoRoot = Path.Combine(AppDataRoot, @"note"); } MemoRoot = BootstrapSettings.MemoRoot; UseCommandLineMemoRoot = false; } LockFileName = "lock"; LockFilePath = Path.Combine(MemoRoot, LockFileName); EmbeddedRoot = Path.Combine(MemoRoot, EmbeddedRootName); EmbeddedFileRoot = Path.Combine(EmbeddedRoot, "file"); EmbeddedImageRoot = Path.Combine(EmbeddedRoot, "image"); SettingsFilePath = Path.Combine(MemoRoot, "settings.xml"); WindowSettingsFilePath = Path.Combine(MemoRoot, "window." + Environment.MachineName + ".xml"); MemoSdfFilePath = Path.Combine(MemoRoot, "note.sdf"); ExtendedDataSdfFilePath = Path.Combine(MemoRoot, "exdata.sdf"); RecentlyClosedMemoIdsFilePath = Path.Combine(MemoRoot, "recentlyclosed.xml"); RecentlyCreatedMemoIdsFilePath = Path.Combine(MemoRoot, "recentlycreated.xml"); RecentlyModifiedMemoIdsFilePath = Path.Combine(MemoRoot, "recentlymodified.xml"); FusenMemoIdsFilePath = Path.Combine(MemoRoot, "fusen.xml"); AbbrevWordDictionaryPath = Path.Combine(MemoRoot, "abbrev.txt"); ProxyRoot = Path.Combine(AppDataRoot, "proxy"); ProxyAssemblyFilePath = Path.Combine(ProxyRoot, ProxyAssemblyName + ".dll"); StartUpShortcutFilePath = Path.Combine( Environment.GetFolderPath(Environment.SpecialFolder.Startup), "MochaNote.lnk" ); }