【问题标题】:Check 3 files exists in different folder on ftp server检查 3 个文件是否存在于 ftp 服务器上的不同文件夹中
【发布时间】:2016-12-11 09:44:16
【问题描述】:

我有 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

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

实际上,如果我想检查需要 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"))
    {

    }
}

【问题讨论】:

    标签: c# ssis ftp


    【解决方案1】:

    我会检查您使用 FTP MDTM 轮询的文件的时间戳,但这不受 FtpClientConnection 支持。

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

    有关代码示例,请参阅此 SO 问题:System.Net.FtpWebRequest GetDateTimestamp example

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      • 2011-11-16
      • 2018-09-24
      • 2014-01-31
      • 1970-01-01
      相关资源
      最近更新 更多