2011-10-03 56 views
3

保證只有在同一個邏輯驅動器上時,Directory.Move纔會重命名並且不會複製/刪除?Windows - C# - Directory.Move

+0

我不會依賴那個。那裏不僅有NTFS,如果你在這個假設下編寫代碼,它可能隨時在其他機器或磁盤上崩潰,具體取決於你無法控制的細節。 –

+0

如果應用程序僅在NTFS上運行,您會依賴它嗎? – user441660

+0

不,我不會,但下面它似乎像大衛有另一個想法/知識 –

回答

3

實際上,如果您嘗試將目錄移動到其他卷,則Directory.Move會失敗。如果你想執行這樣的動作,你必須自己複製/刪除。我認爲你可以放心地認爲Directory.Move只會在沒有複製文件的情況下執行操作。

+0

http://stackoverflow.com/questions/7343880/detecting-if-file-move-will-require-copy-delete-or-just- alter-location-in-th – user441660

+0

感謝David,但你確定嗎?它有點與上面的鏈接矛盾?!!或者我錯過了什麼? – user441660

+0

該鏈接似乎用於討論文件。你的問題涉及目錄。 Directory.Move文檔明確指出,交叉卷移動會失敗。 –

1

Directory.Move是一個原子操作,如果這就是你所得到的。它不是作爲2個操作。至少在NTFS上。

+0

感謝喬治,但我更感興趣需要多少時間。如果它瞬間,我不會擔心其他進程或線程試圖從錯誤的位置讀取或寫入。 – user441660