我正在将旧数据迁移到新系统。我需要将10000个文件的区域从一个目录结构复制到另一个目录结构。旧目录结构和新目录结构都位于同一文件服务器上,位于另一个国家/地区的数据中心。我必须运行负责在本地复制文件的应用程序(而不是在远程文件服务器上)。
我当前的实现一次将一个文件读入内存流。然后将内存流写入另一个位置中新创建的文件。这很好用,但很明显我将每个文件从文件服务器传输到本地计算机,然后再传回文件服务器。
我想知道如果我使用File.Copy(src,trg)会有所不同。 Windows能否足够聪明地处理远程复制文件(在文件服务器上)的过程,而不会在进程中通过线路发送单个字节的文件?
如果使用File.Copy(...)无法做到这一点,还有另一种方法可以完全远程实现处理文件复制操作的目标吗?
答案 0 :(得分:3)
简短的回答:不,它不会。
您可以登录远程服务器吗?然后你可以在那里开始工作......
答案 1 :(得分:1)
取决于Windows的版本。如果服务器是2K3或更高版本,您可以使用Powershell remoting。
如果远程处理可用,请启动PS并执行enter-pssession ServerInADistantLand
- 然后您可以使用普通的DOS或Powershell命令进行复制。