2011-01-04 5 views
1

Ich brauche eine Möglichkeit zu überprüfen, ob mehrere Dateien in einem bestimmten FTP-Pfad vorhanden sind. Ich werde eine Liste haben, die alle zu überprüfenden Dateinamen auflistet, und ich muss prüfen, ob all diese auf dem Server existieren, und Fehler für diejenigen zurückgeben, die das nicht tun. Wie einfach ist das?Überprüfen, ob mehrere Dateien auf dem FTP-Server (C#) vorhanden sind

Dank

Antwort

0

Der sicherste Ansatz wäre, eine Liste von Dateien/Verzeichnissen pro Verzeichnis abzurufen und diese Liste zu analysieren.

 // 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- einfacher - Möglichkeit wäre, zu versuchen, die Dateien und fangen die Datetimestamp Ausnahme abzurufen, wenn die Datei nicht existiert. Sie sollten die Ausnahme überprüfen, da eine aus einem anderen Grund ausgelöst werden könnte.

 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

Nun, wenn Sie Zugriff auf den Server haben, können Sie Ihr Skript dort schreiben und dann fordern Sie einfach das Skript und damit nur eine Server-Anforderung zu machen. Andernfalls müssen Sie nur jede Datei einzeln überprüfen.

Verwandte Themen