/// <summary> /// 指定したフォルダーにMB(Dialog)を保存する。 /// </summary> /// <param name="folderPath">フォルダーのパス</param> /// <param name="langDialogInfoJP">Dialog情報</param> /// <param name="useReplace">上書きの有無</param> public static void SaveToFolder(string folderPath, UapDialogInfo langDialogInfoJP, bool useReplace) { foreach (var dialogFile in langDialogInfoJP.Items.Values) { var path = Path.Combine(folderPath, dialogFile.FileID + ".DialogPackage"); //// exists | useReplace | //// y | y | run //// y | n | cancel //// n | y | run //// n | n | run if (File.Exists(path) && !useReplace) { //// 上書きしない var fileName = Path.GetFileName(path); Console.WriteLine($"ファイルが既に存在します。File({fileName}){Environment.NewLine}上書きする場合は -r オプションを指定してください。"); } else { OxfFileUtils.SafeCreateDirectory(folderPath); using (var sw = new StreamWriter(path, false, Encoding.ASCII)) { var bw = new BinaryWriter(sw.BaseStream); WriteEntries(dialogFile, bw); } } } }
/// <summary> /// 指定したフォルダー内のMB(Dialog)を読み込む。 /// </summary> /// <param name="dialogInfo">Dialog情報</param> /// <param name="folderPath">フォルダーのパス</param> /// <param name="pattern">ファイル名のパターン</param> public static void LoadFromFolder( UapDialogInfo dialogInfo, string folderPath, string pattern) { string[] files = Directory.GetFiles( folderPath, pattern, SearchOption.AllDirectories); foreach (var locFile in files) { LoadFromFile(dialogInfo, locFile); } }
/// <summary> /// 指定したパスのMB(Dialog)を読み込み、Dialog情報に追加する。 /// </summary> /// <param name="dialogInfo">Dialog情報</param> /// <param name="path">MB(Dialog)のパス</param> private static void LoadFromFile(UapDialogInfo dialogInfo, string path) { using (var sr = new StreamReader(path)) { using (var br = new BinaryReader(sr.BaseStream, Encoding.UTF8)) { var fileID = Path.GetFileNameWithoutExtension(path); var dialogFile = new UapDialogFile(fileID); ReadEntries(dialogFile, br); dialogInfo.AddFile(dialogFile); } } }