1
在NTFS,文件的移動是原子的解釋here:如果涉及多個目錄,是否正在移動文件原子?
[...]如果你是NTFS下運行,那麼文件操作都是原子在文件 系統級別。就任何更高代碼 而言,重命名將在單個操作中發生。
這是否意味着如果將文件從一個目錄移動到另一個目錄,移動文件也是原子的?或只在同一目錄內?
我假設兩個目錄都位於同一個捲上。
在NTFS,文件的移動是原子的解釋here:如果涉及多個目錄,是否正在移動文件原子?
[...]如果你是NTFS下運行,那麼文件操作都是原子在文件 系統級別。就任何更高代碼 而言,重命名將在單個操作中發生。
這是否意味着如果將文件從一個目錄移動到另一個目錄,移動文件也是原子的?或只在同一目錄內?
我假設兩個目錄都位於同一個捲上。
是的,它們是原子的。移動期間,源目錄和目標目錄都被鎖定,防止程序看到飛行中的數據。
但是,這只是「失敗原子性」。你的程序可能會採取行動,認爲它已經移動了東西(並與其他服務器進行通信),但對控制結構本身的修改本身並未傳遞給媒體。功率損失可能會丟棄這些更改,但NTFS將確保目錄的一致性(即,不需要chkdsk)。
後續的程序訪問將會看到移動之前或移動之後的文件,但不是即將發生的。
謝謝。除了可以添加一個鏈接到源? – mafu 2012-11-16 03:01:01
你不能創建硬鏈接到目錄,只有文件。硬鏈接創建也是原子的(它只是添加一個新的目錄條目)。 – MJZ 2012-11-27 21:39:16
哦,對不起,我的意思是,如果你可以給你的答案中的信息來源的鏈接:) – mafu 2012-11-28 10:05:58