有没有什么替代"截断"听起来更安全?

Dan*_*ode 2 c# file-io

我有一个应用程序在文件启动时从文件中读取链接列表1,并在文件结束时将其写回文件.我truncate在回写时选择文件模式.然而,truncate对我来说听起来有点危险,因为它首先清除了整个内容.因此,如果出现问题,我就无法取回原来的东西了.还有更好的选择吗?

1:我使用链表,因为商品的顺序可能会改变.因此我后来truncate用来更新整个文件.


正如他第一次指出的那样File.Replace(),汉斯的正确答案声誉正确,尽管目前还没有适用于Silverlight.

dri*_*iis 5

写入新的临时文件.完成并对结果满意后,删除旧文件并将新临时文件重命名/复制到原始文件的位置.这样,如果出现任何问题,您不会丢失数据.

正如Hans Passants的回答所指出的那样,File.Replace在更换原始文件时应该使用最大的稳健性.