2010-07-13 24 views
6

¿Hay una manera simple, rápida para verificar que una conexión FTP (incluye host, puerto, nombre de usuario y contraseña) es válida y el trabajo? Estoy usando C#. Gracias.Cómo comprobar la conexión FTP?

+2

Asegúrese de aceptar una respuesta adecuada a esta. –

Respuesta

5

Usted podría tratar de usar System.Net.FtpWebRequest y luego simplemente comprobar el método GetResponseStream.

así que algo como

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

su código como no compilará – sarsnake

12

intentar algo como esto:

 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

he implementado algo similar a su anishMarokey solución, sin embargo, esto parece fallar cuando se trata de asegurar los sitios FTP. ¿Tiene alguna idea sobre cómo probar una conexión para ftps? Gracias. –

+1

Para que este código funcione también es necesario para establecer el método de la petición (es decir requestDir.Method = WebRequestMethods.Ftp.ListDirectoryDetails). – laurie

+0

@ChrisMitchell .NET todavía no soporta SFTP, pero hay bibliotecas como [SSH.NET] (http://sshnet.codeplex.com/), que tienen esa funcionalidad – laurie

4

/* de Hola Este es el metodo Que utilizo si conoces uno mejor hasmelo sable 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 utiliza Inglés, ya que es el idioma principal. –

-2

Esto es desde el sitio de MSDN para visualizarlo archivos desde un servidor

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; 
} 
Cuestiones relacionadas