NTFS では、ここで説明されているように、ファイルの移動はアトミックです。
[...] NTFS で実行している場合、ファイル操作はファイル システム レベルでアトミックです。上位のコードに関する限り、名前の変更は 1 回の操作で行われます。
これは、あるディレクトリから別のディレクトリに移動する場合でも、ファイルの移動がアトミックであることを意味しますか? それとも同じディレクトリ内のみですか?
両方のディレクトリが同じボリュームにあると想定しています。
はい、それらはアトミックです。移動中は移動元と移動先の両方のディレクトリがロックされるため、プログラムが処理中のデータを参照できなくなります。
ただし、これはあくまで「失敗原子性」です。あなたのプログラムは何かを動かしたと思って (そして別のサーバーにそのことを伝えて) 動くかもしれませんが、制御構造自体への変更はメディアには伝わりませんでした。停電によりこれらの変更が破棄される可能性がありますが、NTFS はディレクトリの一貫性を保証します (つまり、chkdsk は不要です)。
その後のプログラム アクセスでは、移動前または移動後のファイルが表示されますが、移動中のファイルは表示されません。