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
|