2

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

[...] 如果您在 NTFS 下运行,那么文件操作在文件系统级别是原子的。就任何更高的代码而言,重命名将在单个操作中发生。

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

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

4

1 回答 1

1

是的,它们是原子的。源目录和目标目录在移动期间都被锁定,以防止程序看到正在进行的数据。

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

随后的程序访问将看到文件在移动之前或移动之后的原样,而不是当它正在发生时。

于 2012-11-14T21:59:20.317 回答