This question already has answers here:
Atomicity of File.Move
(1个答案)
Atomic file copy under .NET
(4个答案)
已关闭8年。
我正在尝试使用C#生成一个巨大的文本文件,另一个过程正在不断地查看该位置,并尝试提取该文件(如果可用)。
为了使文件具有原子性,请执行以下步骤:
由于C#没有重命名,因此我必须依靠File.Move,这是否可以确保move操作将是原子的,或者是否有另一种方法可以实现这种原子性?
(1个答案)
Atomic file copy under .NET
(4个答案)
已关闭8年。
我正在尝试使用C#生成一个巨大的文本文件,另一个过程正在不断地查看该位置,并尝试提取该文件(如果可用)。
为了使文件具有原子性,请执行以下步骤:
1 - Write to file : Filename_temp.txt
2 - Check if Filename.txt already exists then Delete
3 - Do a File.Move to the same destination
From filename : Filename_temp.txt
TO : Filename.txt
由于C#没有重命名,因此我必须依靠File.Move,这是否可以确保move操作将是原子的,或者是否有另一种方法可以实现这种原子性?
最佳答案
根据MSDN博客文章How to do atomic writes in a file,重命名NTFS文件是一项原子操作:
当然,这不能保证File.Move
只是执行NTFS重命名操作,但是我不能想到一个合理的理由,为什么它应该做更复杂的事情。
关于c# - File.Move原子操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15274861/