我正在将遗留数据迁移到新系统。我需要将 10000 个文件区域中的某些内容从一个目录结构复制到另一个目录结构。旧的和新的目录结构都在同一个文件服务器上,在另一个国家的数据中心的某个地方。我必须运行负责在本地复制文件的应用程序(而不是在远程文件服务器上)。
我当前的实现一次将一个文件读入内存流。然后将内存流写入另一个位置的新创建文件。这很好用,但是很明显,我将每个文件从文件服务器传输到本地计算机,然后再传输回文件服务器。
我想知道如果我改用 File.Copy(src, trg) 是否会有所作为。Windows 是否足够聪明地处理远程(在文件服务器上)复制文件的过程,而无需在该过程中通过线路发送单个字节的文件数据?
如果使用 File.Copy(...) 无法做到这一点,是否有另一种方法可以达到我完全远程处理文件复制操作的目标?