2011-06-09 34 views
1

假设我有一台在Machine1上运行的控制台应用程序。如果该应用程序将Machine2上的网络共享中的文件复制到Machine3上的网络共享,后台会发生什么情况?File.Copy如何工作?

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

我问的原因是因为我最近编写了一个应用程序来完成这个任务,并且大约需要一个小时才能完成(巨大的文件)。当我与正在进行自动化任务的人谈话时,他们说当它们登录到Machine2并复制到Machine3时,它会在大约15分钟内完成。

我正在使用File.Copy方法。

+0

我错过了使用命令'ncopy'直接在服务器上或不同服务器之间复制文件的旧Netware时间,而没有数据通过客户端...那是时代... – 2011-06-09 20:25:33

回答

1

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

1

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

0

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

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