|
Página 1 de 2
|
Autor |
Mensaje |
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Proyecto De Cliente FTP
Dadas las necesidades de acceso amplio a FTP del programa que estoy desarrollando, me he visto obligado a profundizar en el uso del FTPClient de Gambas3.
El resultado es el programa que os ofrezco hoy. Está calentito, calentito, en fase pre-pre-pre-Alfa, en esa fase en la que si alguien se implica en probarlo e informar de los errores la cosa anda mucho más rápido.
Me he divertido mucho aprendiendo a manejar treeviews y otros controles de los que no suelo ser usuario habitual.
No es el filezilla, que digamos... pero poco a poco, poco a poco.
Os presento a GB-FTP, tóma originalidad para un gambas ftp...
Disfrutadlo (o sufridlo, quien sabe)
Descripción: |
Con memoria para la conexión (gb.settings) |
Descargar |
Nombre del archivo: |
gbftp.tar.gz |
Tamaño: |
103.54 KB |
Descargado: |
51 veces |
Descripción: |
Con memoria para la conexión (gb.settings) |
Descargar |
Nombre del archivo: |
gbftp.tar.gz |
Tamaño: |
103.54 KB |
Descargado: |
51 veces |
Descripción: |
Con memoria para la conexión (gb.settings) |
Descargar |
Nombre del archivo: |
gbftp.tar.gz |
Tamaño: |
103.54 KB |
Descargado: |
51 veces |
última edición por shordi el Martes, 16 Abril 2013, 20:54; editado 4 veces
|
#1 Viernes, 12 Abril 2013, 12:48 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Proyecto De Cliente FTP
No funciona cuando intento conectar al servidor. Salen unas carpetas raras en el servidor remoto que realmente no existen. No sé que está pasando, cuando tenga un ratillo lo miro más detenidamente.
Por cierto, ¿cómo es que comparas una variable string si es mayor que 0? Basta con decir "if string then", porque si la cadena está vacía es false y true en caso contrario. ¿Son costumbres de otro lenguaje, quizaś?
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#2 Domingo, 14 Abril 2013, 02:13 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Proyecto De Cliente FTP
Citar:
No funciona cuando intento conectar al servidor. Salen unas carpetas raras en el servidor remoto que realmente no existen. No sé que está pasando, cuando tenga un ratillo lo miro más detenidamente.
A mí me va perfectamente en mi servidor, pero no lo he probado en otro. No sé cómo se comporta con servidores ftp que manejen ssh (creo que no funcionaría) ni sé muy bien qué tipo de comandos FTP utiliza el control ftpClient.
Si me pasas los parámetros de tu servidor puedo intentar depurar más pero, de momento, no tengo acceso a más servidor FTP que el mío y ahí si funciona sin problemas.
Citar: Por cierto, ¿cómo es que comparas una variable string si es mayor que 0? Basta con decir "if string then", porque si la cadena está vacía es false y true en caso contrario. ¿Son costumbres de otro lenguaje, quizaś?
Jeje, estoy lleno de vicios y malas costumbres... No me llega a gustar esa forma moderna del if, porque añade su propia interpretación que, a veces, olvido y ya me ha llevado a algún que otro error. Por ejemplo Si un número es 0 es false, pero ¿si es -1 qué es? porque hay funciones que devuelven 0 y otras -1 y hay bases de datos que almacenan 0 falso 1 verdadero y otras -1 verdadero, según hayan definido el campo boolean o el integer como unsigned, etc.
La comprobación "artesanal" me es más cómoda. Vicios de viejo dinosaurio, supongo.
|
#3 Domingo, 14 Abril 2013, 07:14 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Proyecto De Cliente FTP
Al hilo de las precisiones de Jesús (que de entrada puede no funcionar en algunos servidores) me gustaría que alguien pudiese aportar algo a ciertas cosas que no he sabido/podido conseguir:
-¿Cómo se edita un TreeView?, pues veo que tiene la propiedad Editable para determinar si se puede editar, pero luego no he visto por ningún lado el método Edit. TreeView hereda de GridView y un GridView no es editable ¿o es de TableView y entonces sí lo es? No he encontrado ninguna información al respecto, por lo que he solucionado el tema con un rodeo que simula la edición a la hora de añadir una carpeta remota.
-¿Cómo recuperar la información de consola de FTP? Cuando la conexión está en modo debug, en la consola de gambas aparece perfectamente, pero en tiempo de ejecución no he encontrado la manera de hacer eso.
-¿De dónde se pueden sacar los iconos de los tipos de documento? El control fileview te saca un iconito junto al nombre del archivo según sea un pdf, una carpeta, un documento de office, etc. La carpeta la he podido sacar del stock, pero el resto de iconos no sé dónde los tiene el sistema y cómo los puedo recuperar.
-En las bajadas he podido implementar una barra de progreso gracias Touch, que me da el tamaño del fichero bajado y cómo va creciendo, pero no he conseguido implementar una barra de progreso en las subidas (como no sea una basada en el número de ficheros subidos y pendientes, que no tiene mucho sentido) ¿Alguien sabe cómo detectar, aunque sea de modo aproximado, la cantidad de datos enviados?
-¿A qué huelen las nubes?
-Si un pato se come un saco de serrín ¿Cúanto tarda en cagar un tablón de aglomerado de 2 metros?
Preguntas, preguntas...
Dado el poco interés despertado, 3 descargas de momento, de las cuales una la hice yo por probar, no confío mucho en que salgan muchos probadores (la experiencia dice que ninguno, que nadie tiene tiempo... jejeje) por lo que saco las preguntas aquí y que sea lo que dios quiera.
Saludos.
última edición por shordi el Domingo, 14 Abril 2013, 07:37; editado 1 vez
|
#4 Domingo, 14 Abril 2013, 07:34 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Proyecto De Cliente FTP
Hola de nuevo
A la pregunta del pato no creo que pueda contestar, pero si aún viviera Rodríguez de la Fuente, él era buen candidato para contestar.
Bueno, todavía no sé por qué con el directorio por defecto "/" se ven unas carpetas muy raras al conectar, carpetas que ni por asomo existen en la raíz de ftp.
Sin embargo, si le doy la ruta a uno de los directorios que cuelgan de / entonces la cosa parece que funciona pero... peta. Te envío una captura del IDE en el momento del error con la vista de depuración del array "ar" (muy original el nombre, por cierto) que contiene las rutas de cada fichero o directorio que recupera del servidor.
Evidentemente es un problema de análisis de los datos obtenidos, pues parece que no todos los servidores devuelven el mismo esquema de información de ficheros. De modo que la función Mid en la línea 75:
size = ctamanio(Mid(cad, 37, 12))
...devuelve una porción de cadena que no corresponde al tamaño del fichero. Hay trabajo por hacer, desde luego
Te envío por MP la captura del error porque puede contener información sensible del servidor.
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#5 Lunes, 15 Abril 2013, 21:24 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Proyecto De Cliente FTP
Jesus:
¿Me podrías mandar el fichero que devuelve la consulta? lo tendrás en /tmp/gambas... etc Se le asigna ubicación en la línea 62. Es que con la imagen tal como me la envías no puedo contar bien caracteres y demás para hacer comparativas.
Saludos
|
#6 Martes, 16 Abril 2013, 09:13 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Proyecto De Cliente FTP
Corregido el bug de la recuperación de nombres.
Le he añadido la posibilidad de guardar los datos de la conexión vía gb.settings para futuras conexiones.
Poco a poco...
Saludos
|
#7 Martes, 16 Abril 2013, 20:55 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Proyecto De Cliente FTP
Ahora sí va, jejeje.
Bueno, pues ahora hay que darle el toque profesional... a ver si puedo mejorar algo o implementar el progreso en las subidas... también he notado que es bastante lento para navegar carpetas, esto no tengo claro si es porque cada vez que realizas una operación se cierra la conexión y hay que volver a abrirla o qué? Tengo que mirarlo más despacio.
Saludos y gracias por las correcciones
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#8 Martes, 16 Abril 2013, 22:13 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Proyecto De Cliente FTP
La lentitud la da el propio ftpClient, que no permite comandos list o mlsd (o yo no he sabido ejecutarlos). La única manera que he encontrado es hacer un get sobre la carpeta en sí misma y luego extraer los datos del fichero generado. Es un poco peñazo... pero funciona.
Si la conexión se cierra o abre en cada ocasión...¿Quién sabe? yo, por lo menos, no la cierro.
Por lo demás... todo tuyo, compañero. Si lo mejoras ponte en los créditos... jejeje
Saludos
última edición por shordi el Miercoles, 17 Abril 2013, 08:58; editado 1 vez
|
#9 Miercoles, 17 Abril 2013, 08:33 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Proyecto De Cliente FTP
Por cierto, buen candidato para el SVN... creo.
|
#10 Miercoles, 17 Abril 2013, 08:59 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 2
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|