通过SSIS检查FTP服务器上是否存在文件的最佳方法?

时间:2016-05-17 14:37:05

标签: c# ssis ftp

当我运行调用所述SSIS包的作业时,我需要知道给定FTP服务器上是否存在特定文件。目前我正在使用包含以下代码的脚本任务(在SSIS中):

        string userName = Dts.Variables["User::ftp_username"].Value.ToString();
        string password = Dts.Variables["User::ftp_password"].Value.ToString();
        string fileName = Dts.Variables["User::download_file_name"].Value.ToString();
        string ftpURL = String.Format("ftp://abc.def.com/{0}", fileName);

        try
        {
            FtpWebRequest ftpRequest = (FtpWebRequest)WebRequest.Create(ftpURL);
            ftpRequest.Method = WebRequestMethods.Ftp.DownloadFile;
            ftpRequest.Credentials = new NetworkCredential(userName, password);

            using (FtpWebResponse ftpResponse = (FtpWebResponse)ftpRequest.GetResponse())
            {
                Dts.Variables["User::fileExists"].Value = true;
            }
        }
        catch
        {
            Dts.Variables["User::fileExists"].Value = false;
        }

        Dts.TaskResult = (int)ScriptResults.Success;

但是,这是调用WebRequestMethods.Ftp.DownloadFile方法,根据MSDN网站用于从FTP服务器下载文件。 I just need to know if the file exists, not download it

另外,有没有更好的方法来检查文件是否存在?

PS。我是C#的新手,所以我很抱歉,如果听起来很天真!

2 个答案:

答案 0 :(得分:0)

我会完全删除该脚本并使用SSIS中内置的FTP任务。

发送文件,将覆盖设置为false并相应处理错误(如果已存在) - 即FTP失败。

如果FTP成功(即文件不存在!) - 别忘了删除它!

答案 1 :(得分:0)