【发布时间】:2013-03-08 00:30:41
【问题描述】:
我正在尝试使用 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,这是否确保移动操作将是原子性的,还是有其他方法可以实现这种原子性?
【问题讨论】:
-
你说的确切是什么意思:原子移动?
-
你能更新两个应用程序逻辑吗?如果是 - 使用 Mutex 来同步访问
-
我建议先检查是否存在并删除。你永远不知道,
Filename_temp.txt何时可能已经存在。 -
@Tigran,他希望文件在其他进程可见之前完成。