在NTFS中,文件移动是原子的,如here所述:
[...]如果您在NTFS下运行,则文件操作在文件中是原子操作 系统级别。对于任何更高的代码,重命名将在单个操作中发生 被关注到。
这是否意味着如果文件从一个目录移动到另一个目录,那么移动文件也是原子的?或者只在同一目录中?
我假设两个目录都位于同一个卷上。
答案 0 :(得分:1)
是的,它们是原子的。源和目标目录都会在移动期间被锁定,从而阻止程序查看机上数据。
但是,这只是“失败的原子性”。您的程序可能会移动,认为它已经移动了东西(并且已经与其他服务器进行通信),但是对控制结构本身的修改并没有转移到媒体上。断电可能会丢弃这些更改,但NTFS将确保目录的一致性(也就是说,不需要chkdsk)。
后续程序访问将在移动前或移动后查看文件,但不会在发生时查看。