top of page

LISTAR DIRECTORIOS Y DESCARGAR ARCHIVOS DESDE RUTAS FTP

Se anexan 2 ejemplos de manejo de datos de FTP, el primero lista el directorio contenido en una ruta de FTP, el segundo descarga un archivo .txt contenido en una ruta FTP.

El código es el siguiente.

using System;
using System.Text;
using System.Net;          
using System.IO;            

namespace ResumenDeMacros
{
     public class CONEXION
    {

  public void listarDirectorioFTP(string dir = @"ftp://IP/CARPETA", string user = "usuario", string pass = "password")
        {
         
  FtpWebRequest dirFtp = (FtpWebRequest)FtpWebRequest.Create(dir);

            // Los datos del usuario (credenciales)           
         
  dirFtp.Credentials = new NetworkCredential(user, pass);
            // El comando a ejecutar  
            dirFtp.Method = WebRequestMethods.Ftp.ListDirectory;

            // Obtener el resultado del comando
            StreamReader reader = new StreamReader(dirFtp.GetResponse().GetResponseStream());

            // Leer el stream
            string res = reader.ReadToEnd();
            // Mostrarlo.
            Console.WriteLine(res);
            Console.ReadKey();

            // Cerrar el stream abierto.
            reader.Close();
        }

 public void descargarftp(string dir = @"ftp://10X.XXX.XXX.XX/MICARPETA/MIARCHIVO.txt", string user = "usuario", string pass = "password")
        {   
         
  StreamWriter sw = null;
            StreamReader reader = null;
            FtpWebResponse response = null;
            string rutadestino= @" D:\mi archivo.txt";
            string info = "";
            string mensajeError = "";    
      
            try
            {                  
               
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(dir); // Ruta donde se encuentra el documento
                request.Method = WebRequestMethods.Ftp.DownloadFile;

                // se ingresa usuario y contraseña
                request.Credentials = new NetworkCredential(user, pass);
                request.UseBinary = false;    
                             //SE USA FALSE PARA BAJAR DOCUMENTOS DE TEXTO
                response = (FtpWebResponse)request.GetResponse();

                Stream responseStream = response.GetResponseStream();
                reader = new StreamReader(responseStream);

                sw = new StreamWriter(rutadestino, true);
                info = reader.ReadToEnd();

                //depositar información en el nuevo archivo
                sw.Write(info, Encoding.UTF8);

                //mostrar en pantalla

                Console.WriteLine(info);
                Console.WriteLine("DESCARGA OK, status {0}", response.StatusDescription);

                sw.Close();
               
            }
            catch (Exception e)
            {
               
mensajeError = "Error al bajar el FTP " + e.Message + " " + dir;
                Console.WriteLine(mensajeError);
                return;

            }
            finally
            {
           
    reader.Close();
                response.Close();

            }

        }

    }
}

bottom of page