【问题标题】:rename directory as atomic operation将目录重命名为原子操作
【发布时间】:2017-04-13 15:38:46
【问题描述】:

我在 Visual Studio 中使用 C# 工作。

我正在使用命令 Directory.Move

我有一个可操作的文件夹,有时我需要更换它。

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

如果两个文件夹(操作文件夹和备份文件夹)都存在,则可以,因为我知道先从备份中读取。

但是在删除操作并将备份文件夹重命名为操作后是否会出现(如果发生重新启动)只有部分备份文件/文件夹将在新的操作文件夹中,或者移动文件夹是原子操作的。

我需要操作才能成功,这意味着操作文件夹包含所有内容,或者无法重命名,但中间没有任何内容

【问题讨论】:

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

标签: c# directory filesystems


【解决方案1】:

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

详情请见:Atomic file copy under .NET

WinXP 及以下,如你所想。

【讨论】:

  • 是 Windows Server 2016 的自动事务文件系统还是我需要设置它?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-12
  • 1970-01-01
  • 2012-05-17
  • 2011-12-12
  • 2012-12-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多