Beispiel #1
0
        /// <summary>
        /// 执行读取命令
        /// </summary>
        /// <param name="command">读取命令</param>
        /// <param name="IsOverride">是否覆盖已存在的目标文件</param>
        /// <returns>若输出失败则返回false</returns>
        public bool ExecuteWriteCommand(IFileWriteCommand command, bool IsOverride = true)
        {
            bool result = false;

            try
            {
                System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(FilePath);
                if (dir.Exists == false)
                {
                    dir.Create();
                }

                FileStream file = new FileStream(FileFullName, IsOverride ? FileMode.OpenOrCreate : FileMode.Append, FileAccess.Write);
                Writer = new StreamWriter(file);
                command.WriteToFile(this);
                Writer.Close();
                file.Close();
                result = true;
            }
            catch (Exception ex)
            {
                ErrorMessage = ex.ToString();
            }
            return(result);
        }
Beispiel #2
0
        public DbFileStream(
            IFileOpenCommand openCommand,
            IFileCloseCommand closeCommand,
            IFileReadCommand readCommand0,
            IFileReadCommand readCommand1,
            IFileWriteCommand writeCommand0,
            IFileWriteCommand writeCommand1,
            FileAccessMode mode,
            string fileName,
            string directoryName = null)
        {
            Contract.Requires((mode == FileAccessMode.Write) || (readCommand0 != readCommand1));

            _openCommand   = openCommand;
            _closeCommand  = closeCommand;
            _readCommands  = new[] { readCommand0, readCommand1 };
            _writeCommands = new[] { writeCommand0, writeCommand1 };

            _fileName      = fileName;
            _directoryName = directoryName;
            _mode          = mode;
        }