elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Subir Carpetas enteras por ftp en C#[SOLUCIONADO]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Subir Carpetas enteras por ftp en C#[SOLUCIONADO]  (Leído 14,509 veces)
Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Subir Carpetas enteras por ftp en C#[SOLUCIONADO]
« en: 30 Noviembre 2009, 22:38 pm »

Hola a todos, cómo estan, aqui les vengo a molestar nuevamente jajaja como muchas veces lo he hecho, bueno navegando por la red decidi buscar cómo subir archivos por ftp, funciona todo bien, pero busco cómo subir carpetas enteras y no logro conseguir ayuda, miren les dejo lo que tengo (osea lo que saque por internet) y diganme que podria agregar para subir carpetas enteras,gracias de antemano.


Código
  1.  
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Text;
  5. using System.IO;
  6. using System.Net;
  7.  
  8.  
  9. namespace FTP
  10. {
  11.    class Program
  12.    {
  13.        public void UploadFTP(string FilePath, string RemotePath, string Login, string Password)
  14.        {
  15.            using (FileStream fs = new FileStream(FilePath, FileMode.Open, FileAccess.Read, FileShare.Read))
  16.            {
  17.                string url = Path.Combine(RemotePath, Path.GetFileName(FilePath));
  18.  
  19.                // Creo el objeto ftp
  20.                FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(url);
  21.  
  22.                // Fijo las credenciales, usuario y contraseña
  23.                ftp.Credentials = new NetworkCredential(Login, Password);
  24.  
  25.                // Le digo que no mantenga la conexión activa al terminar.
  26.                ftp.KeepAlive = false;
  27.  
  28.                // Indicamos que la operación es subir un archivo...
  29.                ftp.Method = WebRequestMethods.Ftp.UploadFile;
  30.  
  31.                // … en modo binario … (podria ser como ASCII)
  32.                ftp.UseBinary = true;
  33.  
  34.                // Indicamos la longitud total de lo que vamos a enviar.
  35.                ftp.ContentLength = fs.Length;
  36.  
  37.                // Desactivo cualquier posible proxy http.
  38.                // Ojo pues de saltar este paso podría usar
  39.                // un proxy configurado en iexplorer
  40.                ftp.Proxy = null;
  41.  
  42.                // Pongo el stream al inicio
  43.                fs.Position = 0;
  44.  
  45.                // Configuro el buffer a 2 KBytes
  46.                int buffLength = 2048;
  47.                byte[] buff = new byte[buffLength];
  48.  
  49.                int contentLen;
  50.  
  51.                // obtener el stream del socket sobre el que se va a escribir.
  52.                using (Stream strm = ftp.GetRequestStream())
  53.                {
  54.                    // Leer del buffer 2kb cada vez
  55.                    contentLen = fs.Read(buff, 0, buffLength);
  56.  
  57.                    // mientras haya datos en el buffer ….
  58.                    while (contentLen != 0)
  59.                    {
  60.                        // escribir en el stream de conexión
  61.                        //el contenido del stream del fichero
  62.                        strm.Write(buff, 0, contentLen);
  63.                        contentLen = fs.Read(buff, 0, buffLength);
  64.                    }
  65.                }
  66.            }
  67.        }
  68.  
  69.        static void Main(string[] args)
  70.        {
  71.            Program ftp = new Program();
  72.            string carpeta, carpetaremota, login, pass;
  73.  
  74.            carpeta=@"C:\archivo.txt";
  75.            carpetaremota = "ftp://ftp.tupagina.cl/public_html";
  76.            login = "tuusuario";
  77.            pass = "tuclave";
  78.  
  79.            try
  80.            {
  81.                ftp.UploadFTP(carpeta, carpetaremota, login, pass);
  82.            }
  83.            catch (Exception e)
  84.            {
  85.                Console.WriteLine("Error.. " +e.Message);
  86.            }
  87.            Console.WriteLine("Presione una tecla para terminar..");
  88.            Console.ReadKey();
  89.        }
  90.    }
  91. }
  92.  
  93.  
  94.  
  95.  


« Última modificación: 1 Diciembre 2009, 01:43 am por BadDevil » En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Subir Carpetas enteras por ftp en C#
« Respuesta #1 en: 30 Noviembre 2009, 22:47 pm »

no se puede subir una carpeta literalmente.

Lo que se hace es subir archivo por archivo. CUando hay una subcarpeta, se envia un comando FTP que cree una subcarpeta con el mismo nombre y ahi se suben sus archivos....algo asi como "recursividad"....

No se cual sera el comando para crear una carpeta....pero puedes buscar en inet !! :laugh:


En línea

Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: Subir Carpetas enteras por ftp en C#
« Respuesta #2 en: 30 Noviembre 2009, 22:50 pm »

Ok entiendo, seguire buscando, estoy atento a sus respuestas  ;)
En línea

Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: Subir Carpetas enteras por ftp en C#
« Respuesta #3 en: 30 Noviembre 2009, 23:10 pm »

[OFF TOPIC]Disculpen el doble post, pero buscando en google me di cuenta que ya habia sido indexado el post XD osea se demoro como 30 minutos xD[/OFF TOPIC]
En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Subir Carpetas enteras por ftp en C#
« Respuesta #4 en: 30 Noviembre 2009, 23:38 pm »

[OFF TOPIC]Disculpen el doble post, pero buscando en google me di cuenta que ya habia sido indexado el post XD osea se demoro como 30 minutos xD[/OFF TOPIC]

jaja...la proxima vez en vez de hacer doble post, usa el boton "modificar" :P
En línea

Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: Subir Carpetas enteras por ftp en C#
« Respuesta #5 en: 1 Diciembre 2009, 01:42 am »

Solucionado, no pude subir la carpeta pero subi todos los archivos de dicha carpeta con un simple ciclo llamando al Directory.GetFileName ajjajaj ya veo como lo hago para crear la carpeta antes, gracias.
En línea

anarquistadel89

Desconectado Desconectado

Mensajes: 158



Ver Perfil
Re: Subir Carpetas enteras por ftp en C#
« Respuesta #6 en: 2 Diciembre 2009, 00:58 am »

Solucionado, no pude subir la carpeta pero subi todos los archivos de dicha carpeta con un simple ciclo llamando al Directory.GetFileName ajjajaj ya veo como lo hago para crear la carpeta antes, gracias.

Comprueba antes de subir si la carpeta existe, si no existe igual existe alguna manera de crearla. Luego ya seria cuestion de meter los ficheros dentro.

Hago una suposicion ya que no se si se pueden crear carpetas desde ahi  :-\

PD: Estaba pensando en crear un gestor ftp y tu codigo me viene de muerte  :xD
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Duda Python] Secuencia de notas enteras de 0 a 10
Scripting
sora_ori 4 3,540 Último mensaje 11 Noviembre 2012, 15:07 pm
por sora_ori
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines