gpt4 book ai didi

windows - 备份配置文件

转载 作者:可可西里 更新时间:2023-11-01 10:30:27 25 4
gpt4 key购买 nike

我需要能够在因断电而断开连接的机器上存储配置文件 ;),我正在使用基本的 WinApi 来存储配置数据 (WriteFile),除非机器断电,否则这会起作用 ;)有时文件根本没有保存。

我在想 2 个解决方案:

1) Transactional NTFS API(例如 CreateFileTransacted() ),但是这个东西只能在 Vista 上工作,而且 NTFS 必须存在,在大多数情况下我不能使用它

2) 在 %APPDATA% 目录中创建配置文件的备份副本,比如 20 个备份副本,并在检测到损坏的配置文件时在应用程序启动时恢复它们

如果您知道我的问题的任何其他解决方案(主要问题是通过拔掉电源来关闭机器),请告诉我。谢谢。

最佳答案

您真的不需要 20 个备份副本。您只需要 1 - 最后一份。现在,如果您的客户实际上要求配置文件的基本版本控制系统,那就是另一回事了。但只要有一个好的配置文件,您只需要 1 个备份。

现在,这是我过去为嵌入式项目所做的:

  1. 计算配置文件的哈希值并将其存储在文件中。最简单的方法是将其作为注释附加到文件末尾。我曾经为此使用 crc32,但现在我会使用 SHA1。这甚至可以在传输/存储配置文件之前通过配置上传工具自动完成。

  2. 打开配置文件时,提取哈希并将其与从文件中计算的值进行比较(显然是在从文件中删除哈希后计算的)。如果哈希不存在,则文件不完整。如果哈希值不相同,则文件已损坏。无论哪种情况,都使用旧文件。

  3. 现在验证了一个有效且正确的配置文件,它可以替换旧的配置文件。为此使用操作系统的重命名操作。在大多数现代文件系统上,它通常是原子的,因此重命名失败不会破坏旧文件。

这是我多年来使用过的最强大的系统。这基本上就是 bittorrent 所做的。

关于windows - 备份配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2028936/

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