2017-04-03 52 views
0

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

我使用的命令Directory.Move

我有一个操作文件夹和我有时需要更换。

我所做的就是创建一个备份文件夹与新操作文件夹在同一目录下的新内容,删除操作并重命名文件夹。

如果两个文件夹(运行和备份)都存在它的好,因为我知道从备份中读取第一个。

但删除操作和重命名备份文件夹的操作可以有这样的情况:(如果重启occures)后只有备份文件的一部分/文件夹将在新的业务文件夹中,或者是移动文件夹是原子操作的。

我需要操作是成功的意思业务文件夹中包含的一切,还是没能重新命名,但没有介于两者之间

+0

我不明白复制目录结构,删除原件,然后将副本重命名为与原件相同的名称。但是无所谓。如果您只想重命名单个目录,那么是的...该单一操作在文件系统级别是原子的。你认为会发生什么中间状态?你的问题不是很清楚。 –

回答

1

文件操作已经在NTFS下的文件系统级的原子(Windows Vista中+) 。

有关详细信息,请参阅本:Atomic file copy under .NET

对于WinXP中及以下,这就像你想。

+0

是Windows Server 2016的自动交易文件系统,还是我需要设置它? – asaf