File.Move的原子性

时间:2009-04-21 19:02:38

标签: c# .net filesystems

我想将目录中的文件重命名为原子事务。该文件不会更改目录。该路径作为NTFS文件系统的UNC路径提供,可能在Server 03或08上。

File.Move()原子用于这些目的吗?如果它成功完成或失败,原始文件仍然完好无损?

我的直觉是,但我想确定。

1 个答案:

答案 0 :(得分:21)

是的,在NTFS中。来自here

  

另外,如果您在NTFS下运行,那么文件操作在文件系统级别是原子操作。就任何更高的代码而言,重命名将在单个操作中发生。您看到的问题几乎似乎是跨应用程序共享FileInfo对象的问题。它是MarshalByRef对象,因此可用于远程处理环境。不知道这是否适用于您。