我有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"))
{
}
}
答案 0 :(得分:0)
我要检查您使用FTP MDTM进行轮询的文件的时间戳,但FtpClientConnection不支持此功能。
使用System.Net.FtpWebRequest是一个选项吗?此类使用WebRequestMethods.Ftp.GetDateTimestamp方法支持MDTM。我有点不清楚这个类如何处理FTP控制连接生命周期(默认情况下它是保持打开状态),所以如果脚本被大量使用,我会在部署到生产之前对其进行测试
请参阅此SO问题以获取代码示例:System.Net.FtpWebRequest GetDateTimestamp example