我已经纠结于此一段时间了,我并不真正理解如何通过使用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();
我一直试图将文件从第一个服务器复制并移动到第二个服务器,但没有成功,但我现在有点迷路了。
能帮我解决吗?
如果FTP和SFTP是唯一可用的接口,就没有办法直接将文件从FTP复制到SFTP服务器。
您必须从FTP服务器下载文件,然后将它们上传到SFTP服务器。
>
有关FTP下载,请参见在C#/.NET中向FTP服务器上载文件并从FTP服务器下载文件
有关SFTP上载,请参阅C#SFTP上载文件