.net - .NET 中的事务性打开/写入/替换?

标签 .net linux file transactions mono

我在想也许我应该将它限制在 8k。我想打开一个文件,每次都从头到尾写。但是,如果由于某种原因(比如停电)它没有完成,我不想损坏数据。有没有一种方法可以打开/写入/关闭事务文件,这样它就不会替换以前的文件,除非它成功了?

当我用谷歌搜索时,我得到了很多关于数据库事务和 ado 而不是文件的结果

最佳答案

  1. 写入一个临时文件,
  2. 删除旧文件
  3. 仅在写入成功时重命名临时文件。

如果您在第二步之后但在第三步之前断电,为防止数据丢失,您还需要一个步骤:

  • 在程序启动时,检查主要文件已删除但尚未重命名的临时文件。如果找到任何文件,请对这些文件再次执行第三步。

关于.net - .NET 中的事务性打开/写入/替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7536001/

相关文章:

linux - Eclipse 错误弹出窗口的背景颜色

C 加密 : Unable to check if number is prime using libgcrypt

swift - 如何将数据附加到压缩文件?

.net - 为什么对于没有目标的方法,我会收到 Interceptor attempts to ‘Proceed’ 错误?

c# - ASP.NET Core 服务器端验证失败导致 Microsoft.AspNetCore.Mvc.SerializableError

c# - Entity Framework 6 和 MS-SQL Server 连接弹性的自定义执行策略

c# - 订阅事件

c++ - 将队列用作全局队列并从 main 处理其内容

python - 使用计数器对象计算文件中的单词数

java - 无法在Java中读取阿拉伯文本文件