PDA

Ver la Versión Completa : Arbol de directorios FTP


miguelml
16-05-2006, 13:08:15
estoy haciendo una acplicacion que una de sus funciones es conectarse a un servidor ftp, quiero visualizar por pantalla un arbol de directorios de ese servidor, y no se como hacerlo. Probé con un shelltreeview pero nose si es pq la cuenta de usuario tiene contraseña, que no puedo hacer nada. Con que podria visualizar el arbol de un ftp?

muchas gracias.

dec
16-05-2006, 22:27:21
Hola,

Creo que deberías/podrías utilizar el componente "TIdFTP" de los componentes Indy (http://www.indyproject.org/). Estos se incluyen en Delphi, y, el "TIdFTP" en concreto dentro de la pestaña "Indy Clients" de la paleta de componentes de Delphi. También puedes descargar algún que otro ejemplo en la página Web de los componentes Indy. También puedes buscar un poco (http://clubdelphi.com/foros/search.php?searchid=456681) en estos Foros, puesto que he ha hablado del componente "TIdFTP" en más de una ocasión.

miguelml
17-05-2006, 09:22:20
no se me a entendido :), eel problema que tengo es para visualizar el arbol dedirectorios, no para acceder, que ya se como va, es que quiero hacer que sea posile navegar por los directorios del site ftp con una especie de shelltreeview, pero no se que usar.

gracias

miguelml
17-05-2006, 12:09:51
ya esta solucionado, con un treeview y una funcion recursiva

gracias de todos modos.

roman
17-05-2006, 18:34:22
Hola Miguel, si me permites yo te recomendaría no usar una función recursiva. Leer todos los directorios y subdirectorios de un sólo golpe y a través de internet puede ser algo muy lento dependiendo de cuan ramificado y profundo sea el árbol.

Lo usual en estos casos es leer sólo los nodos de un nivel. Los colocas en el treeview poniendo su propiedad HasChildren en true pero sin leer sus hijos. Eso hace que el botón [+] aparezca junto al nodo aunque como nodo del treeview aún no tenga subnodos. Cuando haces click en dicho botón, se genera el evento OnExpanding del treeview. Ahí es donde consultas al servidor para leer los subdirectorios correspondientes y en caso de haberlos los insertas como subnodos.

De esta forma, sigues teniendo un árbol de directorios pero cuyos nodos se llenan sólo cuando es necesario ahorrando tiempo y memoria.

// Saludos