gpt4 book ai didi

c# - 用 C# 和 Windows 编写事务文件?

转载 作者:可可西里 更新时间:2023-11-01 12:39:31 25 4
gpt4 key购买 nike

我有一个数据文件,有时我需要对文件进行更改。更改包括在多个地方更改信息。例如,更改文件末尾附近的一些数据,并更改文件开头附近的一些信息。我希望两次单独的写入都成功或都失败,否则它会处于不确定状态并有效损坏。 .NET 或一般情况下是否有任何内置支持这种情况?

如果不是那么其他人如何解决这个问题? Windows 上的数据库如何解决这个问题?

更新:我不想使用事务性 NTFS 功能,因为它在旧版本的 Windows(例如 XP)上不可用,并且在如上所述的文件覆盖情况下速度很慢。

最佳答案

DB 基本上使用 Journal 概念(至少我知道的那些)。一个想法是,写入操作写入日志,直到 Writer 不提交事务。 (当然这只是基本的描述,很简单)

在您的情况下,它可能是您的文件的副本,您将在其中写入数据,并且如果一切都成功完成,则用它的副本替换原始文件。

替换为:将原始文件重命名为old,将备份文件重命名为original

如果替换失败:这是一个严重错误,该应用程序应通过容错策略进行处理。可能是它通知用户保存操作失败,并尝试恢复。顺便说一下,您随时都有文件的两个副本。一个是写操作刚开始的时候,另一个是写操作完成的时候。

我们在过去的 VS IDE 项目中使用了这种技术,例如工业控制系统,并取得了相当大的成功。

关于c# - 用 C# 和 Windows 编写事务文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7297915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com