An Avanade Blogging Community

Welcome to An Avanade Blogging Community Sign in | Join | Help
in Search

vtortola

Descargando un fichero por FTP

Siguiendo con el tema de Enviar un archivo por FTP y Enviar un Stream por FTP , vamos ahora con la descarga. También nos puede ser útil poder descargar archivos por FTP, para cosas como descargar copias de seguridad de un servidor ó realizar la copia en si misma, descargar archivos de servidores de forma sencilla y con autenticación, etc .. etc...

Ahí va un sencillo ejemplo:

public static void DownloadFTP(string LocalDirectory, string RemoteFile, 
                            string Login, string Password)
{
  // Creo el objeto ftp
  FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(RemoteFile);
 
  // Fijo las credenciales, usuario y contraseña
  ftp.Credentials = new NetworkCredential(Login, Password);
 
  // Le digo que no mantenga la conexión activa al terminar.
  ftp.KeepAlive = false;
 
  // Indicamos que la operación es descargar un archivo...
  ftp.Method = WebRequestMethods.Ftp.DownloadFile;
 
  // … en modo binario … (podria ser como ASCII)
  ftp.UseBinary = true;
 
  // Desactivo cualquier posible proxy http.
  // Ojo pues de saltar este paso podría usar 
  // un proxy configurado en iexplorer
  ftp.Proxy = null;
 
  // Activar si se dispone de SSL
  ftp.EnableSsl = false;
 
  // Configuro el buffer a 2 KBytes
  int buffLength = 2048;
  byte[] buff = new byte[buffLength];
  int contentLen;
 
  LocalDirectory = Path.Combine(LocalDirectory, Path.GetFileName(RemoteFile));
  using (FileStream fs = new FileStream(LocalDirectory, FileMode.Create, 
                                        FileAccess.Write, FileShare.None))
  using (Stream strm = ftp.GetResponse().GetResponseStream())
  {
    // Leer del buffer 2kb cada vez
    contentLen = strm.Read(buff, 0, buffLength);
 
    // mientras haya datos en el buffer...
    while (contentLen != 0)
    {
      // escribir en el stream del fichero
      //el contenido del stream de conexión
      fs.Write(buff, 0, contentLen);
      contentLen = strm.Read(buff, 0, buffLength);
    }
  }
}

Para usarlo es tan simple como los demás ejemplos:

DownloadFTP("C:\\MiCarpeta", "ftp://ftp.miservidor.net/Public/Naruto368.rar","miusuario" ,@"mipassword");

 

Descargando un fichero por FTP | vtortola.NET
Crossposting desde ElBruno.com
Published Thursday, September 06, 2007 6:17 PM by vtortola

Comments

No Comments
Anonymous comments are disabled

About vtortola

MCTS: Windows Applications 2.0 MCTS: Distributed Applications 2.0 MCTS: WebApplications 2.0

This Blog

Post Calendar

<September 2007>
SuMoTuWeThFrSa
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

News

vtortola.NET



Valeriano Tórtola.
MCTS: Windows Apps 2.0
MCTS: Distributed Apps 2.0
MCTS: Web Apps 2.0
Application Developer I.

Syndication