vtortola.NET Logo
Descargando un fichero por FTP

Descargando un fichero por FTP

por vtortola jueves, 06 de septiembre de 2007

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");

Actualmente calificado 3.8 por 8 persona(s)

  • Currently 3,75/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags: , , ,

.NET 2.0 | C# 2.0

Related posts

Comentarios

septiembre 6. 2007 06:18

trackback

Trackback from vtortola

Descargando un fichero por FTP

vtortola

octubre 5. 2007 01:46

trackback

Trackback from vtortola

Descargando un fichero por FTP

vtortola

octubre 7. 2007 12:39

pingback

Pingback from elbruno.com

Cliente FTP asincrono - vtortola

elbruno.com

Comments are closed

Powered by BlogEngine.NET 1.1.1.8
This theme is a variation of Mads Kristensen by Valeriano Tórtola

Valeriano Tórtola

Personal Ver perfil
E-mail Enviar correo
LinkedIn LinkedIn
Fotos Fotos
MCPD

Publicidad

Posts recientes

Disclaimer

Las opiniones mostradas aqui son mis opniones y no representan el punto de vista de mi empresa en ninguna forma.

Creative Commons License

Esta obra está bajo una licencia de Creative Commons

Locations of visitors to this page

© Copyright 2009

Sign in

Calendario

<<  julio 2009  >>
lumamijuvido
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

Ver en calendario extendido