有时我的应用程序会抛出一个异常,说文件已损坏或无法恢复。基本上这个文件是一个日志文件。我的应用程序将事件和一些数据写入日志文件。
我的应用程序被放置在运行Windows XP操作系统的嵌入式盒子中。关闭应用程序的唯一方法是关闭嵌入式盒子的电源。由于Windows没有正常关闭,因此文件有时会损坏(这就是我的想法)。
我使用英特尔SSD作为驱动器。我已在磁盘上启用了写入缓存。这会导致文件损坏吗?
如果我捕获异常,那么我可以使用c#文件函数(file.delete)删除此文件吗?
此致
答案 0 :(得分:5)
写入缓存不会导致文件损坏。文件打开时关闭机器会导致文件损坏。
如果您捕获了异常,那么您应该能够删除该文件。
如果您在写入日志文件时调用Flush
,则可以减少错误的频率。如果在每次写入后关闭文件,您几乎可以完全消除错误(当然,这需要您在每次写入之前打开它以进行追加)。这可能是非常昂贵的。
只要关闭应用程序的唯一方法是断电,就不能完全消除错误。但是,您可以考虑旋转日志,因此如果它被损坏,您只会丢失最后一小时(或15分钟,或者您用于日志旋转频率的任何时间)。