gpt4 book ai didi

c# - 在计算机崩溃时调用 File.WriteAllText 会导致数据丢失

转载 作者:行者123 更新时间:2023-12-02 02:31:39 27 4
gpt4 key购买 nike

我有以下代码来保存数据:

File.Copy("data.txt", "data_backup.txt", true);
File.WriteAllText("data.txt", JsonConvert.SerializeObject(new
{
bool1,
string1,
decimal1,
decimal2,
int1,
datetime,
object1,
object2
}, new JsonSerializerSettings { Formatting = Formatting.Indented, Converters = new List<JsonConverter>() { new DontIntendArray() } }));

我的程序每 15 秒执行一次。data.txt 的大小约为 9 MB。

有时,当我的计算机崩溃时,重新启动后,我发现 data.txt 充满了 NULL 字符,而其大小仍然约为 9 MB。这就是为什么我添加了 data_backup.txt 行,但它没有帮助,因为它也保存了充满 NULL 的文件。

请注意,这种情况不会在每台计算机上发生,但显然只有在执行此代码时崩溃时才会发生。

我在 RAM 上使用 XMP 配置文件时遇到了这种行为,该配置文件不稳定并时常导致崩溃。在两台具有不稳定 XMR 配置文件的不同计算机上完全相同。我在停电的时候也经历过。

我知道我不能指望崩溃的计算机能够完美地执行所有代码然后才崩溃。但是,有什么技巧可以用来防止在计算机崩溃之前或之前写入或保存的文件内容丢失吗?定期将这些变量保存到文件中的全部目的是为了防止计算机崩溃时丢失数据,但显然这种方法并不总是有效。

最佳答案

您应该保存为新文件名,然后在保存后移动新文件以替换原始文件。这样,无论您什么时候被打扰,您始终拥有一份完整的副本。

关于c# - 在计算机崩溃时调用 File.WriteAllText 会导致数据丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50517898/

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