Desarrollando un Cliente FTP para Compact Framework 2.0

Aunque ya tenemos aquí la nueva versión de CF 3.5 que mejora en gran medida el tema de las comunicaciones, aún nos vemos obligados muchas veces a tener que trabajar con su hermano pequeño el Compact Framework 2.0, y por supuesto no es nada raro el tener que utilizar servidores FTP para transferir archivos, descargarlos etc. (a pesar de ser un metodo nada recomendado por motivos de seguridad que no explicare en estos momentos ) si que es cierto que es una forma muy comoda de enviar información cuando no tenemos otro modo de hacerlo (no podemos colgar ninguna aplicación en el servidor, abrir un servicio web o similares).


Aquí os dejo un ejemplo mostrando como podemos utilizar crear nuestra propia clase MobileNug.Net.ClienteFTP para integrarla en nuestras aplicaciones moviles.


/******************************************     Codigo C#          *************************************************/
using MobileNug.Net;
(…)


ClienteFTP clienteFtp;
clienteFtp = new ClienteFTP();
clienteFtp.Host = «192.168.0.xxx»;
clienteFtp.Username =
«anonymous»;
clienteFtp.Password =
«»;


try
{
    clienteFtp.Ejecutar_FTP(
ClienteFTP.Comando.enviar,
                                               
@»Program FilesPrueba_MnugNETClienteFTParchivo.txt»);
}
catch (Exception ex)
{
   
MessageBox.Show(ex.Message);
}


(…)
 /****************************************************************************************************************/


 


/******************************************     Codigo VB.net          *************************************************/


Imports MobileNug.Net


Public Class Form1

  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 
Dim clienteFtp As New ClienteFTP()
  clienteFtp.Host =
«192.168.0.xxx» ‘TODO: Poner aqui el host del servidor FTP
 
clienteFtp.Username = «anonymous» ‘TODO: Poner aqui el nombre de usuario
 
clienteFtp.Password = «» ‘TODO: Poner aqui el pass
  
 
Try
   
clienteFtp.Ejecutar_FTP(MobileNug.Net.ClienteFTP.Comando.enviar, «nombrearchivo.txt»)
 
Catch ex As Exception
    MessageBox.Show(ex.Message)
 
End Try
End Sub
End
Class

 /***********************************************************************************************************************/


En el siguiente enlace podréis encontrar la solución completa, inclyendo el código fuente de la clase MobileNUG.Net.ClienteFTP


Si la utilizais recordar que hay que tunearla… agregar un control de errores en condiciones, y ampliarla con lo que necesiteis si la vais a utilizar en una aplicación seria.


Espero que os sea útil, y por supuesto si la mejorais o agregáis nuevas funcionalidades no dudeis en remitirlas a la dirección de correo de mobilenug (la encontraréis en la web de la comunidad), estaremos encantados de re-publicarla y agregaros como colaboradores.


Un saludo a todos
José Antonio


Mobile .NET Users Group


 

7 comentarios sobre “Desarrollando un Cliente FTP para Compact Framework 2.0”

  1. Aqui Don PinPon jejeje

    Para aplicaciones WinForms en .NET ya tenemos System.Net.FtpWebRequest por lo que no es necesario tener que estar tirando de la librería wininet.dll

    De todos modos no te preocupes que te no te vuelves a Barrio Sesamo con las manos vacias.

    Aquí te dejo un ejemplo para que puedas hacer un clienteFTP para aplicaciones Windoforms.

    http://geeks.ms/files/folders/92538/download.aspx

    Un saludo!

  2. checkea esto, una clase facil de utilizar que utiliza la clase FTP de visual basic.net, como cliente FTP, asincronico, posee todos los comandos, registrate, es gratis.

    ingresa A http://scm-studiomax.comuv.com/

    la informacion acerca del cliente esta en :

    http://scm-studiomax.comuv.com/id/?id=1kB1JAGk1GlXG4-FGf1UGj-6Gc1cGe-3HOWC

    ahi, te demuestra como es un cliente ftp, y como crear la clase ftp para usarla.

    un ejemplo para subir es facil, creamos, la clase ftp, tal y como indica en la web, y luego creamos un boton llamado «boton1», y dentro de su codigo escribimos lo siguiente:

    Private Sub boton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles boton1.Click
    rt.ftp.Conectar(«scm-studiomax.SHARED.com», «usuario», «contraseña»)
    rt.ftp.Especificar_Directorio(«public_html»)
    rt.ftp.Especificar_Directorio(«archivos»)
    rt.ftp.Subir_Archivo(«c:/miarchivo.txt», «archivo.txt»)
    End Sub

    >> scm-studiomax.SHARED.com -> es el nombre del servidor.
    >>tal ejemplo sube el archivo, en los directorios especificados y luego se accede deacuerdo a las normas de la web, con la maskara de enlace.

    en la web de ejemplo, todo lo que se suba a «public_html»,. se carga en el servidor, asi que la ruta de acceso, para tal archivo, seria:

    http://scm-studiomax.SHARED.com/archivos/archivo.txt.

    parea mas informacion de la utilizacion de la clase ftp, modificada, ingresa a la web site, escrita arri
    ba

  3. @ SCM-Studio MAX…

    ¿No lo has probado para Compact framework 2.0.. ni para CF 3.5 tampoco no? El script no funciona para dispostivos móviles. Por ejemplo el espacio de nombres System.Net.FtpWebRequest o My.Computer.FileSystem no existe para Compact.

  4. el link :

    scm-studiomax.comuv.com/id/?id=1kB1JAGk1GlXG4-FGf1UGj-6Gc1cGe-3HOWC

    bueno, ya se que My no existe, pero, programarlo no es dificil, ya lo mofique para que lea en cualquier net frame work, es mas, los que quieren la lybrerya My, para C# solo diganme, y pondre el link, utilizen el sistema de SCVM-Studio MAX.

    http://scm-studiomax.comuv.com

    para recibir una respuesta rapida.

  5. Jose Antonio Gallego tiene razón, no se puede usar FtpWebRequest en un dispositivo movil que use el CompactFramework 2.0, con el 3.5 no lo probé, pero no puedo cambiar el framework a 1000 dispositivos que controla la aplicacion que programo.
    Alejandro Varela. Rosario, Argentina.
    hav29a@gmail.com

  6. Excelente codigo, me sirvio mucho.
    Hice algunas modificaciones a la clase para llamar los metodos directamente, porque así lo requería el proyecto.

    Si alguin necesita que le comprata el codigo por favor mandarme un email, edgar@onclickmx.com

    Saludos y gracias por compartir tu codigo.

Responder a jagallego Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *