コード例 #1
0
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     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()));
        }
コード例 #2
0
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     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()));
            }
        }
コード例 #3
0
        // _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
        //     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()));
        }
コード例 #4
0
        /// <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()));
            }
        }
コード例 #5
0
        /// <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()));
            }
        }