Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   NMFTP.List se queda pegado (https://www.clubdelphi.com/foros/showthread.php?t=51644)

quinqui 21-12-2007 21:03:30

Problema con NMFTP.List... ¿Qué otro componente para FTP recomiendan?
 
Holas!

Les cuento que estoy trabajando en un programa (en Delphi 5) que entre sus tareas tiene que conectarse a un servidor FTP para enviar determinados archivos locales al host remoto.

Para manejar las excepciones en general del componente he usado el método Cancel del componente dentro de los eventos OnFailure, onListItem y onDisconnect del mismo. Todo funciona de maravilla: cuando hay error, las excepciones saltan y las puedo manejar a gusto.

Pero, siempre tiene que haber un pero: el método List no quiere someterse a mis órdenes, jejeje....

Debido a que en este componente NMFTP he visto que no existe una función del tipo "DirectoryExists", he creado una función que retorna un valor booleano: si la Carpeta FTP existe, retorna verdadero; de lo contrario, Falso.

Precisamente aquí es donde uso el método List. La función obtiene la Lista de archivos del directorio padre y, al recorrerla, pregunta si el directorio en consulta está en esa lista: si está, retorno Verdadero; si no lo está, retorno Falso.
Si se produce un error, salta la Excepción y todo bien.

Sin embargo, a pesar de que la excepción salta, y me muestra los mensajes que yo digo (ejemplo: "error intentando listar los directorios" o "conexion al ftp perdida"), el método List internamente no para. Y ahí es donde está la falla fatal: porque el programa, si bien aparentemente no se bloquea ni se cae, comienza a tragar memoria del sistema como loco, y de hecho cuando intento cerrar el programa, no lo hace, salvo que lo cierre desde el Administrador de Tareas.

Buscando por Google encontré que alguien preguntó esto hace años, en este mismo foro, aunque cuando estaba en otra url (lo tuve que ver por el Cache de google). Esa vez le respondieron que se cambiara al componente IdFtp o Indy, pero yo quiero saber, antes de cambiarme, si alguien en estos años encontró la solución a este bug (si es que es bug), porque llevo harto hecho y lamentablemente no es tiempo lo que me sobra :(

Esop. Ojalá alguien use aún el NMFTP para que lea y opine al respecto ^^

Muchas gracias desde ya y Saludos!! :o

quinqui 21-12-2007 21:37:39

He estado buscando más sobre el error del NMFTP.List, y con sorpresa he visto que muchos han tenido el mismo problema... La solución siempre propuesta ha sido un cambio de componente. En la mayor parte de los casos sugieren el Indy, pero en otro lado leí que igual tenía fallitas; en otro lado encontré uno llamado ICS, de OverByte, que decían no tener errores.

Creo que a estas alturas la realidad es contundente y tendré que cambiar de componente... En ese caso, mi pregunta cambia ahora a ¿Qué componentes me recomiendan? A mí me parece bien el ICS, pero no sé qué opinen ustedes que saben más...

Gracias otra vez!!! Saludos ;)


La franja horaria es GMT +2. Ahora son las 17:27:55.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi