File.Copy如何工作?

时间:2011-06-09 20:21:03

标签: .net performance file-io

假设我有一个在Machine1上运行的控制台应用程序。如果该应用程序将文件从Machine2上的网络共享复制到Machine3上的网络共享,后台会发生什么?

它是直接从Machine2到Machine3还是必须通过Machine1,因为那是运行应用程序的地方?

我问的原因是因为,我最近写了一个应用程序执行此操作,它需要大约一个小时才能完成(大文件)。当我与任务我自动化的人交谈时,他们表示,当他们登录Machine2并复制到Machine3时,它将在大约15分钟内完成。

我正在使用File.Copy方法。

3 个答案:

答案 0 :(得分:1)

将文件下载到您的计算机,然后再次上传到目标计算机,是的。

答案 1 :(得分:1)

如果您在Machine1上,任何标准文件复制操作都必须从Machine2获取数据并将其发送到Machine3(通过网络两次)。 FTP是我所知道的唯一一个协议,它规定了从第三台服务器在两台服务器之间复制文件,而第三台服务器不必发送和接收数据。

答案 2 :(得分:0)

我自己没有尝试过,但有一种方法可能是使用Powershell在Machine1上调用一个小文件,将文件直接复制到Machine2。

有一个msdn blog关于如何从C#调用PS脚本。如果将它与关于如何远程调用命令的this WindowsITPro文章结合起来,它可能会有效。