/// <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); }
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; }