【发布时间】:2014-10-09 01:03:49
【问题描述】:
我的 VB.NET 应用程序使用 config.xml 文件来存储所有配置。该文件经常写入(每 20 秒左右),因为它还存储用户会话的状态等。有时,用户报告此文件突然长度为零或充满未知字符,因此应用程序无法执行。
我跟踪了这个问题,发现当文件在电源故障甚至正常关机(!)之前写入短时会发生这种情况。我用记事本对其进行了测试-我编辑了文件并在编辑后立即拔掉了电源线,然后在重新启动后,文件已损坏。文件通常在启动系统关闭后是空的,或者在断电后充满零(按位)。所以这看起来不像是我的应用程序的问题,而是一般的操作系统或磁盘/FS 问题。
这发生在十多台不同的 PC 上。都有Win7,NTFS,有的有SSD盘,有的没有。
这可以预防吗?我能否确保文件包含编辑前的数据或编辑后的数据,但永远不会处于损坏状态?
【问题讨论】:
-
不要覆盖现有文件。创建一个新文件并使用 File.Replace()。
标签: vb.net windows-7 filesystems disk