1

我们有一个将非常大的数据文件导出到 Windows 网络共享的应用程序。我们可能需要在稍后的处理过程中将该文件移动到同一共享下的不同文件夹中。我们通常使用 File.Move 重命名同一目录中的文件,因此开销很小。但我担心对新目录执行此操作,因为它会导致数据被复制,这是不可接受的。在 linux/unix 中, mv 命令只是操作文件夹节点,所以只要它是相同的设备/卷,它就很快。但是对于 Windows,我认为在很多情况下它会先复制然后删除源。这是我想避免的。

所以我的问题是针对 Windows 网络共享上的 .NET 4 File.Move(),我想将文件从一个目录移动到另一个相邻的目录,移动数据会产生成本还是快速简单文件结构操作与文件大小无关?

4

1 回答 1

1

如果文件移动到同一卷上的另一个文件夹,则底层 Windows API 调用只会移动文件的目录条目(而不是复制它)。这适用于网络卷和本地卷。如果共享不以某种方式跨越多个卷,那么您应该没问题。试试看。

于 2012-10-31T12:45:12.107 回答