如果涉及多个目录,是否正在移动文件原子?

时间:2012-02-01 11:38:48

标签: file ntfs atomicity file-move

在NTFS中,文件移动是原子的,如here所述:

  

[...]如果您在NTFS下运行,则文件操作在文件中是原子操作   系统级别。对于任何更高的代码,重命名将在单个操作中发生   被关注到。

这是否意味着如果文件从一个目录移动到另一个目录,那么移动文件也是原子的?或者只在同一目录中?

我假设两个目录都位于同一个卷上。

1 个答案:

答案 0 :(得分:1)

是的,它们是原子的。源和目标目录都会在移动期间被锁定,从而阻止程序查看机上数据。

但是,这只是“失败的原子性”。您的程序可能会移动,认为它已经移动了东西(并且已经与其他服务器进行通信),但是对控制结构本身的修改并没有转移到媒体上。断电可能会丢弃这些更改,但NTFS将确保目录的一致性(也就是说,不需要chkdsk)。

后续程序访问将在移动前或移动后查看文件,但不会在发生时查看。