2011-01-04 4 views
1

特定のFTPパスに複数のファイルが存在するかどうかを確認する方法が必要です。私はチェックするすべてのファイル名をリストしたリストを持っており、これらがすべてサーバ上に存在するかどうかを確認し、そうでないものについてはエラーを返す必要があります。これは簡単ですか?あなたは、サーバーへのアクセス権を持っている場合FTPサーバー(C#)に複数のファイルが存在するかどうかを調べる

おかげ

答えて

0

最も安全なアプローチは、ディレクトリごとにファイル/ディレクトリのリストを取得し、そのリストを解析することです。

 // Get the object used to communicate with the server. 
     var request = WebRequest.Create(url); 

     request.Credentials = new NetworkCredential(username, password); 

     request.Method = WebRequestMethods.Ftp.ListDirectoryDetails; 

     try 
     { 
      using(var response = request.GetResponse()) 
      { 
       using(var stream = response.GetResponseStream()) 
       { 
        using(var reader = new StreamReader(stream)) 
        { 
         while(reader.Peek() >= 0) 
         { 
          var line = reader.ReadLine(); 

          // check if this is a file or directory, filter list etc.. 

         } 
        } 
       } 
      } 
     } 
     catch 
     { 

     } 

Another-簡単に - オプションは、ファイルDateTimestampを検索し、ファイルが存在しない場合に例外をキャッチしようとするだろう。別の理由でスローされる可能性があるため、例外をチェックする必要があります。

 var request = WebRequest.Create(url); 

     request.Credentials = new NetworkCredential(username, password); 

     request.Method = WebRequestMethods.Ftp.GetDateTimestamp; 

     try 
     { 
      using(var response = (FtpWebResponse)request.GetResponse()) 
      { 
       // file exists 
      } 
     } 
     catch(WebException e) 
     { 
      // file probably doesn't exits 
     } 
0

さて、あなたはそこにあなたのスクリプトを書くことができ、その後、ちょうどそのスクリプトを要求し、これだけ1つのサーバリクエストを行う必要があります。それ以外の場合は、各ファイルを1つずつ確認するだけです。

関連する問題