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.NetPublic
Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.ClickDim 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
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!
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
@ 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.
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.
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
@alejandro: Si necesitas ayuda con lo del FTP no dudes en ponerte en contacto conmigo.
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.