假设我有一个在Machine1上运行的控制台应用程序。如果该应用程序将文件从Machine2上的网络共享复制到Machine3上的网络共享,后台会发生什么?
它是直接从Machine2到Machine3还是必须通过Machine1,因为那是运行应用程序的地方?
我问的原因是因为,我最近写了一个应用程序执行此操作,它需要大约一个小时才能完成(大文件)。当我与任务我自动化的人交谈时,他们表示,当他们登录Machine2并复制到Machine3时,它将在大约15分钟内完成。
我正在使用File.Copy方法。
答案 0 :(得分:1)
将文件下载到您的计算机,然后再次上传到目标计算机,是的。
答案 1 :(得分:1)
如果您在Machine1上,任何标准文件复制操作都必须从Machine2获取数据并将其发送到Machine3(通过网络两次)。 FTP是我所知道的唯一一个协议,它规定了从第三台服务器在两台服务器之间复制文件,而第三台服务器不必发送和接收数据。
答案 2 :(得分:0)
我自己没有尝试过,但有一种方法可能是使用Powershell在Machine1上调用一个小文件,将文件直接复制到Machine2。
有一个msdn blog关于如何从C#调用PS脚本。如果将它与关于如何远程调用命令的this WindowsITPro文章结合起来,它可能会有效。