检查ftp服务器上不同文件夹中是否存在3个文件

时间:2016-12-11 09:44:17

标签: c# ssis ftp

我有3个variable,其中包含文件的路径,每个文件位于不同的文件夹中,但是相同的ftp服务器:

名为variable的第一个file1包含该值/ds/product/Jan/09122016_product.csv

名为variable的第二个file2包含该值/ds/subproduct/Jan/09122016_subproduct.csv

名为variable的第三个file3包含该值/ds/category/Jan/09122016_category.csv

我想要的是在一个代码中检查ftp中是否存在3个文件。

实际上,如果我想检查我需要3个脚本任务的3个文件,我可以在一个脚本任务中只验证一个文件,但我想优化这个怎么办呢?

string[] folderArray, fileArray;
ConnectionManager cm = Dts.Connections["FTP"];
FtpClientConnection ftpClient = new  FtpClientConnection(cm.AcquireConnection(null));
ftpClient.Connect();
ftpClient.SetWorkingDirectory("/ds/product/Jan/");
ftpClient.GetListing(out folderArray, out fileArray);

foreach (String file in fileArray)
{
    if (file.Equals("09122016_product.csv"))
    {

    }
}

1 个答案:

答案 0 :(得分:0)

我要检查您使用FTP MDTM进行轮询的文件的时间戳,但FtpClientConnection不支持此功能。

使用System.Net.FtpWebRequest是一个选项吗?此类使用WebRequestMethods.Ftp.GetDateTimestamp方法支持MDTM。我有点不清楚这个类如何处理FTP控制连接生命周期(默认情况下它是保持打开状态),所以如果脚本被大量使用,我会在部署到生产之前对其进行测试

请参阅此SO问题以获取代码示例:System.Net.FtpWebRequest GetDateTimestamp example