예제 #1
0
        public static ResponseFTP <string> ActualizarCarpeta(NetworkCredential credenciales, string rutaCarpetaLocal, string rutaCarpetaFtp)
        {
            var respuestaFTP = new ResponseFTP <string>();

            Console.WriteLine("Actualizando Carpeta");


            //*** Obteniendo archivos en la carpeta FTP
            var tmpResp = ObtenerArchivosPendientes(credenciales, rutaCarpetaLocal, rutaCarpetaFtp);

            if (tmpResp.Ok == 0)
            {
                respuestaFTP.Message = tmpResp.Message;
                return(respuestaFTP);
            }
            List <FTP_File> archivosPendientes = tmpResp.Data;

            //*** Subir Archivos
            foreach (var itemPorSubir in archivosPendientes)
            {
                //*** Si el ultimo caracter de la rutaCarpetaLocal es un '/' or un '\', combinar la rutaCarpetaLocal y el nombre del archivo sin agregar el '/'
                var tmpURl    = (rutaCarpetaLocal.ToCharArray()[rutaCarpetaLocal.Length - 1] == '/' || rutaCarpetaLocal.ToCharArray()[rutaCarpetaLocal.Length - 1] == '\\') ? $"{rutaCarpetaLocal}{itemPorSubir.Nombre}" : $"{rutaCarpetaLocal}/{itemPorSubir.Nombre}";
                var tmpURlFTp = (rutaCarpetaFtp.ToCharArray()[rutaCarpetaFtp.Length - 1] == '/' || rutaCarpetaFtp.ToCharArray()[rutaCarpetaFtp.Length - 1] == '\\') ? $"{rutaCarpetaFtp}{itemPorSubir.Nombre}" : $"{rutaCarpetaFtp}/{itemPorSubir.Nombre}";
                Console.WriteLine($"\tSubiendo Archivo: {tmpURl} a {tmpURlFTp} ");

                var tmpRes = FTP_Utility.SubirArchivo(credenciales, tmpURl, tmpURlFTp, ModoPublicacion.SobreEscribir);
                if (tmpRes.Ok == 1)
                {
                    Console.WriteLine($"\tArchivo subido");
                }
                else
                {
                    Console.WriteLine($"\tNo se pudo subir el archivo: {tmpRes.Message}");
                }

                respuestaFTP.Data = "Comletado todos los archivos pendientes por subir";
            }
            respuestaFTP.Ok = 1;
            return(respuestaFTP);
        }
예제 #2
0
        static void Main(string[] args)
        {
            Console.WriteLine("FTP Utility");
            NetworkCredential credenciales = new NetworkCredential {
                UserName = "******",
                Password = "******"
            };

            //Ruta ftp: ftp://host.net:21

            if (args.Length < 1)
            {
                Console.WriteLine(" -md <Nombre Directorio> \t Crear un Nuevo directorio");
                Console.WriteLine(" -u <Archivo Origen> <Archivo Destino> \t Sube un archivo");
                Console.WriteLine(" -ls <Ruta destino> \t Obtiene el listado de los archivos en la ruta establecida");
                Console.WriteLine(" -uf <Ruta carpta local> <Ruta carpta destino> \t Sube los archivos de la carpeta local que no esten en la carpeta destino");
                Console.WriteLine(" -lsu <Ruta carpta local> <Ruta carpta destino> \t Optiene los archivos por subir, comparando la carpeta local y la carpeta destino");
                Console.WriteLine(" -w <Ruta carpta local> <Ruta carpta destino> \t Detecta cambios y sube los archivos de la carpeta local que no esten en la carpeta destino");
                return;
            }
            string r1, r2, r3;

            switch (args[0].ToLower())
            {
            case "-md":
                if (args.Length < 2)
                {
                    Console.WriteLine("Faltan argumentos");
                    return;
                }
                var resp1 = FTP_Utility.CrearDirectorio(credenciales, args[1].ToString());
                break;


            case "-u":
                if (args.Length < 3)
                {
                    Console.WriteLine("Faltan parametros");
                    return;
                }
                r1 = args[1];
                r2 = args[2];
                var resp2 = FTP_Utility.SubirArchivo(credenciales, r1, r2, FTP_Utility.ModoPublicacion.SobreEscribir);
                break;


            case "-ls":
                if (args.Length < 2)
                {
                    Console.WriteLine("Faltan parametros");
                    return;
                }
                r1 = args[1];
                var resp3 = FTP_Utility.ObtenerListadoArchivos(credenciales, r1);
                if (resp3.Ok == 1)
                {
                    foreach (var item in resp3.Data)
                    {
                        Console.WriteLine($"\tArchivo: {item.Nombre}\tBytes: {item.Tamaño}");
                    }
                }
                else
                {
                    Console.WriteLine("Error al obtener los archivos.\n\t" + resp3.Message);
                }
                break;



            case "-uf":
                if (args.Length < 3)
                {
                    Console.WriteLine("Faltan parametros");
                    return;
                }
                var r41   = args[1];
                var r42   = args[2];
                var resp4 = FTP_Utility.ActualizarCarpeta(credenciales, r41, r42);
                Console.WriteLine($"\nFinalizado:\nOk:\t{resp4.Ok}\nResp:\t{resp4.Data}\nMsg:\t{resp4.Message}");
                break;


            case "-lsu":
                if (args.Length < 3)
                {
                    Console.WriteLine("Faltan parametros");
                    return;
                }
                var r61   = args[1];
                var r62   = args[2];
                var resp6 = FTP_Utility.ObtenerArchivosPendientes(credenciales, r61, r62);
                if (resp6.Ok == 1)
                {
                    if (resp6.Data.Count > 0)
                    {
                        foreach (var item in resp6.Data)
                        {
                            Console.WriteLine($"\tArchivo: {item.Nombre}\tBytes: {item.Tamaño}");
                        }
                    }
                    else
                    {
                        Console.WriteLine($"\nNo hay archivos pendientes por subir");
                    }
                }
                else
                {
                    Console.WriteLine($"\nError:\n\t{resp6.Message}");
                }
                break;


            case "-w":
                if (args.Length < 3)
                {
                    Console.WriteLine("Faltan parametros");
                    return;
                }
                var r51  = args[1];
                var r52  = args[2];
                var ftpU = new FTP_Utility(credenciales, r51, r52);
                ftpU.IniciarWatcher();
                Console.WriteLine($"\nFinalizado");
                break;


            default:
                Console.WriteLine(" -md <Nombre Directorio> \t Crear un Nuevo directorio");
                Console.WriteLine(" -u <Archivo Origen> <Archivo Destino> \t Sube un archivo");
                Console.WriteLine(" -ls <Ruta destino> \t Obtiene el listado de los archivos en la ruta establecida");
                Console.WriteLine(" -uf <Ruta carpta local> <Ruta carpta destino> \t Sube los archivos de la carpeta local que no esten en la carpeta destino");
                Console.WriteLine(" -w <Ruta carpta local> <Ruta carpta destino> \t Detecta cambios y sube los archivos de la carpeta local que no esten en la carpeta destino");
                return;
            }
        }