标签: c# .net windows ntfs
我正在尝试实现一种安全的文件替换方法,该方法应能够抵抗瞬间崩溃(例如电源故障)。我知道NTFS确保文件重命名是原子的,因此我只是将内容写入临时文件,然后将其重命名为“ commit”。
我唯一缺少的组件是:如何确保文件内容已完全写入磁盘?我不写文件(我只得到文件名),所以不能使用FileStream.Flush(true)。
FileStream.Flush(true)
据我所知,NTFS不能保护内容,Windows可以根据需要将其写入的时间推迟。如果重命名发生在内容完成之前,则可能会发生不好的事情。