2016-05-17 18 views
0

上記のSSISパッケージを呼び出すジョブを実行するときに、特定のファイルが特定のFTPサーバーに存在するかどうかを知る必要があります。しかし、これは、MSDNのウェブサイトによるからファイルをダウンロードするために使用されるために使用されWebRequestMethods.Ftp.DownloadFileメソッドを呼び出しているSSIS経由でFTPサーバーにファイルが存在するかどうかを確認する最適な方法は?

 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; 

:現在、私は次のコードを包含し(SSIS内の)スクリプトタスクを使用していますFTPサーバー。 I just need to know if the file exists, not download it

さらに、ファイルの存在を確認する良い方法はありますか?

PS。私はC#の初心者ですので、純粋であれば申し訳ありません!

答えて

0

私はそのスクリプトを完全に削除し、SSISに組み込まれたFTPタスクを使用します。

小ファイルを送信し、上書きをfalseに設定して、それがすでに存在する場合はエラーに応じて処理します。つまり、FTPに失敗しました。

FTPが成功した場合(ファイルが存在しなかった場合)、削除することを忘れないでください。

関連する問題