2017-04-03 120 views
0

我在Visual Studio中使用C#。重命名爲原子操作目錄

我使用的命令Directory.Move

我有一個操作文件夾和我有時需要更換。

我所做的就是創建一個備份文件夾與新操作文件夾在同一目錄下的新內容,刪除操作並重命名文件夾。

如果兩個文件夾(運行和備份)都存在它的好,因爲我知道從備份中讀取第一個。

但刪除操作和重命名備份文件夾的操作可以有這樣的情況:(如果重啓occures)後只有備份文件的一部分/文件夾將在新的業務文件夾中,或者是移動文件夾是原子操作的。

我需要操作是成功的意思業務文件夾中包含的一切,還是沒能重新命名,但沒有介於兩者之間

+0

我不明白複製目錄結構,刪除原件,然後將副本重命名爲與原件相同的名稱。但是無所謂。如果您只想重命名單個目錄,那麼是的...該單一操作在文件系統級別是原子的。你認爲會發生什麼中間狀態?你的問題不是很清楚。 –

回答

1

文件操作已經在NTFS下的文件系統級的原子(Windows Vista中+) 。

有關詳細信息,請參閱本:Atomic file copy under .NET

對於WinXP中及以下,這就像你想。

+0

是Windows Server 2016的自動交易文件系統,還是我需要設置它? – asaf