C# IO 异常 文件或目录已损坏且不可读
本文关键字:已损坏 IO 异常 文件 | 更新日期: 2023-09-27 17:55:35
有时我的应用程序会抛出异常,指出文件已损坏或不可编辑。基本上,此文件是日志文件。我的应用程序将事件和一些数据写入日志文件。
我的应用程序被放到运行Windows XP OS的嵌入式框中。关闭应用程序的唯一方法是关闭嵌入式盒子的电源。由于 windows 没有正常关闭,文件有时会损坏(这就是我在想的)。
我正在使用英特尔固态盘作为驱动器。我已经在磁盘上启用了写缓存。这是否会导致文件损坏?
如果我捕获异常,那么我可以使用 c# 文件函数(file.delete)删除此文件吗?
问候
写入缓存不会导致文件损坏。在文件打开时关闭计算机会导致文件损坏。
如果捕获异常,则应该能够删除该文件。
如果在写入日志文件时调用日志文件Flush
,则可能会减少错误的频率。如果在每次写入后关闭文件,则几乎可以完全消除错误(当然,这需要您在每次写入之前打开它进行追加)。这可能非常昂贵。
只要关闭应用程序的唯一方法是断开电源,就无法完全消除错误。不过,您可以考虑轮换日志,因此如果日志确实损坏,您只会丢失最后一个小时(或 15 分钟,或用于日志轮换频率的任何时间)。