当源和文件都是远程处理File.Copy。 target是否在同一个远程文件服务器上?

时间:2012-05-10 14:55:42

标签: c# .net windows file-io

我正在将旧数据迁移到新系统。我需要将10000个文件的区域从一个目录结构复制到另一个目录结构。旧目录结构和新目录结构都位于同一文件服务器上,位于另一个国家/地区的数据中心。我必须运行负责在本地复制文件的应用程序(而不是在远程文件服务器上)。

我当前的实现一次将一个文件读入内存流。然后将内存流写入另一个位置中新创建的文件。这很好用,但很明显我将每个文件从文件服务器传输到本地计算机,然后再传回文件服务器。

我想知道如果我使用File.Copy(src,trg)会有所不同。 Windows能否足够聪明地处理远程复制文件(在文件服务器上)的过程,而不会在进程中通过线路发送单个字节的文件?

如果使用File.Copy(...)无法做到这一点,还有另一种方法可以完全远程实现处理文件复制操作的目标吗?

2 个答案:

答案 0 :(得分:3)

简短的回答:不,它不会。

您可以登录远程服务器吗?然后你可以在那里开始工作......

答案 1 :(得分:1)

取决于Windows的版本。如果服务器是2K3或更高版本,您可以使用Powershell remoting

如果远程处理可用,请启动PS并执行enter-pssession ServerInADistantLand - 然后您可以使用普通的DOS或Powershell命令进行复制。