2010-07-13 6 views
6

Esiste un modo semplice e veloce per verificare che una connessione FTP (include host, porta, nome utente e password) sia valida e funzionante? Sto usando C#. Grazie.Come verificare la connessione FTP?

+2

essere sicuri di accettare una risposta adeguata a questa. –

risposta

5

Si potrebbe provare a utilizzare System.Net.FtpWebRequest e poi basta controllare il metodo GetResponseStream.

Quindi qualcosa di simile

System.Net.FtpWebRequest myFTP = new System.Net.FtpWebRequest 

//Add your credentials and ports 

try 
{ 
    myFTP.GetResponseStream(); 
    //set some flags 
} 
catch ex 
{ 
    //handle it when it is not working 
} 
+3

il tuo codice così com'è non verrà compilato – sarsnake

1

Utilizzare System.Net.FtpWebRequest o System.Net.WebRequestMethods.Ftp per verificare la connessione utilizzando le credenziali di accesso. Se la richiesta FTP non riesce per qualsiasi motivo il messaggio di errore appropriato verrà restituito indicare quale fosse il problema (autenticazione, in grado di connettersi, ecc ...)

12

provare qualcosa di simile:

 FtpWebRequest requestDir = (FtpWebRequest)FtpWebRequest.Create("ftp://ftp.google.com"); 
     requestDir.Credentials = new NetworkCredential("username", "password"); 
     try 
     { 
      WebResponse response = requestDir.GetResponse(); 
      //set your flag 
     } 
     catch 
     { 
     } 
+0

Ho implementato qualcosa di simile alla tua soluzione anishMarokey, tuttavia questo sembra fallire quando si tratta di siti FTP sicuri. Avete qualche idea su come testare una connessione per ftps? Grazie. –

+1

Per far funzionare questo codice è necessario anche impostare il metodo di richiesta (ad esempio requestDir.Method = WebRequestMethods.Ftp.ListDirectoryDetails). – laurie

+0

@ChrisMitchell .NET non supporta ancora SFTP, ma esistono librerie come [SSH.NET] (http://sshnet.codeplex.com/) che dispongono di tale funzionalità – laurie

4

/* Hola Este es el Metodo que utilizo si Conoces Uno mejor hasmelo sciabola Ubirajara 100% Mexicano isc. [email protected] */

private bool isValidConnection(string url, string user, string password) 
     { 
      try 
      { 
       FtpWebRequest request = (FtpWebRequest)WebRequest.Create(url); 
       request.Method = WebRequestMethods.Ftp.ListDirectory; 
       request.Credentials = new NetworkCredential(user, password); 
       request.GetResponse(); 
      } 
      catch(WebException ex) 
      { 
       return false; 
      } 
      return true; 
     } 
+5

StackOverflow utilizza l'inglese come lingua principale. –

-2

Questo è dal sito MSDN per diplay file da un server

public static bool DisplayFileFromServer(Uri serverUri) 
{ 
// The serverUri parameter should start with the ftp:// scheme. 
if (serverUri.Scheme != Uri.UriSchemeFtp) 
{ 
    return false; 
} 
// Get the object used to communicate with the server. 
WebClient request = new WebClient(); 

// This example assumes the FTP site uses anonymous logon. 
request.Credentials = new NetworkCredential ("anonymous","[email protected]"); 
try 
{ 
    byte [] newFileData = request.DownloadData (serverUri.ToString()); 
    string fileString = System.Text.Encoding.UTF8.GetString(newFileData); 
    Console.WriteLine(fileString); 
} 
catch (WebException e) 
{ 
    Console.WriteLine(e.ToString()); 
} 
return true; 
}