// _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ // Public Method // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ /// <summary> /// データを同期的に書き出す。 /// </summary> /// <exception cref="ArgumentException"> /// ファイル名が正しくない場合、 /// またはpathが非ファイルデバイスを参照している場合 /// </exception> public void WriteSync() { Logger.Info(FileIOMessage.StartFileWrite(GetType())); foreach (var target in Data) { WriteOneData(target); } Logger.Info(FileIOMessage.EndFileWrite(GetType())); }
// _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ // Public Method // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ /// <summary> /// ファイルを同期的に書き出す。 /// </summary> /// <exception cref="ArgumentException"> /// ファイル名が正しくない場合、 /// またはpathが非ファイルデバイスを参照している場合 /// </exception> public void WriteSync() { lock (writeLock) { Logger.Info(FileIOMessage.StartFileWrite(GetType())); var writeDatabaseDat = Data.GenerateDatabaseDat(DbKind); var datFileWriter = new DatabaseDatFileWriter(DatFilePath); datFileWriter.WriteSync(writeDatabaseDat); var writeDatabaseProject = Data.GenerateDatabaseProject(DbKind); var projectFileWriter = new DatabaseProjectFileWriter(ProjectFilePath); projectFileWriter.WriteSync(writeDatabaseProject); Logger.Info(FileIOMessage.EndFileWrite(GetType())); } }
// _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ // Public Method // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ /// <summary> /// データを同期的に書き出す。 /// </summary> /// <exception cref="ArgumentException"> /// ファイル名が正しくない場合、 /// またはpathが非ファイルデバイスを参照している場合 /// </exception> public void WriteSync() { Logger.Info(FileIOMessage.StartFileWrite(GetType())); var builder = new StringBuilder(); foreach (var target in Data) { GetOneDataText(target, builder); } var outputText = builder.ToString(); File.WriteAllText(FilePath, outputText, Encoding.Default); Logger.Info(FileIOMessage.EndFileWrite(GetType())); }
/// <summary> /// データを同期的に書き出す。 /// </summary> /// <param name="data">出力データ</param> /// <exception cref="ArgumentNullException"> /// data が null の場合 /// </exception> /// <exception cref="ArgumentException"> /// ファイル名が正しくない場合、 /// またはpathが非ファイルデバイスを参照している場合 /// </exception> public override void WriteSync(EditorIniData data) { if (data is null) { throw new ArgumentNullException( ErrorMessage.NotNull(nameof(data))); } lock (writeLock) { Logger.Info(FileIOMessage.StartFileWrite(GetType())); var innerWriter = new HasSectionIniFileWriter <EditorIniProgramData>( FilePath, new List <EditorIniProgramData> { data.ToProgramData() }); innerWriter.WriteSync(); Logger.Info(FileIOMessage.EndFileWrite(GetType())); } }
/// <summary> /// ファイルを同期的に書き出す。 /// </summary> /// <param name="data">[NotNull] 出力データ</param> /// <exception cref="ArgumentNullException"> /// data が null の場合 /// </exception> /// <exception cref="InvalidOperationException"> /// ファイル名が正しくない場合、 /// またはFilePathが非ファイルデバイスを参照している場合 /// </exception> public override void WriteSync(TFileData data) { if (data == null) { throw new ArgumentNullException( ErrorMessage.NotNull(nameof(data))); } lock (writeLock) { Logger.Info(FileIOMessage.StartFileWrite(GetType())); var bin = GetDataBytes(data).ToArray(); using (var stream = new FileStream(FilePath, FileMode.Create)) { stream.Write(bin, 0, bin.Length); } Logger.Info(FileIOMessage.EndFileWrite(GetType())); } }