Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
在 NTFS 中,文件移动是原子的,如下所述:
[...] 如果您在 NTFS 下运行,那么文件操作在文件系统级别是原子的。就任何更高的代码而言,重命名将在单个操作中发生。
这是否意味着如果文件从一个目录移动到另一个目录,移动文件也是原子的?还是只在同一个目录中?
我假设两个目录都位于同一个卷上。
是的,它们是原子的。源目录和目标目录在移动期间都被锁定,以防止程序看到正在进行的数据。
然而,这只是“故障原子性”。您的程序可能会进行移动,认为它已经移动了一些东西(并与另一台服务器通信它已经这样做了),但是对控制结构本身的修改并没有传播到媒体上。断电可能会丢弃这些更改,但 NTFS 将确保目录的一致性(也就是不需要 chkdsk)。
随后的程序访问将看到文件在移动之前或移动之后的原样,而不是当它正在发生时。