提问者:小点点

在C#中复制和移动文件从一个目录到另一个目录(不同的服务器)


我已经纠结于此一段时间了,我并不真正理解如何通过使用SSIS来解决这种情况(我正在考虑用C#创建一个脚本任务)

这就是我的问题:每天都会创建一个文件并将其存储在特定服务器的某个目录中(我可以使用Filezilla或任何其他程序中的客户端-服务器应用程序中的FTP协议访问它),我希望复制该文件,将其保存在使用SFTP协议的不同服务器的不同目录中,然后,一旦它100%地被放置在该目录中,移动原始文件并将其放入不同的文件夹中。

看看这个例子:

我需要复制该文件(MyFileTest.csv)并将其粘贴到不同的目录中,来自不同的服务器(它使用SFTP协议,路由是:secondServer/placeHere)。

最后,一旦它被粘贴到该目录中,我想移动原始文件并将其粘贴到文件夹“process”中。它不应该再出现在/interfaces/mydirectory目录中,而应该只出现在/interfaces/mydirectory/process

我可以通过使用以下代码获得CSV文件:

using System.IO;
using System.Linq;

        string filename = new DirectoryInfo(@"C:\interfaces\mydirectory").GetFiles()
                               .Where(e => e.Extension.ToLower() == ".csv")
                               .OrderByDescending(d => d.LastWriteTime)
                               .Select(f => f.FullName)
                               .First();

我一直试图将文件从第一个服务器复制并移动到第二个服务器,但没有成功,但我现在有点迷路了。

能帮我解决吗?


共1个答案

匿名用户

如果FTP和SFTP是唯一可用的接口,就没有办法直接将文件从FTP复制到SFTP服务器。

您必须从FTP服务器下载文件,然后将它们上传到SFTP服务器。

>

  • 有关FTP下载,请参见在C#/.NET中向FTP服务器上载文件并从FTP服务器下载文件

    有关SFTP上载,请参阅C#SFTP上载文件