Buenas,
Estoy haciendo un programilla en Ruby y me gustarÃa hacer algo que no
logro hacer.
Se trata de recorrer un directoiro dado, por ejemplo /home, e ir
introduciendo cada elemento que se encuentre dentro de ese directorio en
una estructura TreeView, que se encuentra en Ruby GTK.
Lo de recorrer un directorio e imprimir todo lo que haya dentro es tarea
fácil:
require ‘find’
Find.find(’./’) do |f| p f end
Pero el problema es que cuando hago ésto, todo aquello que hay dentro
del directorio se imprime a un mismo nivel. Asà pues, si dentro de /home
tubiera dos subcarpetas “a” y “b”, y dentro de esa subcarpeta “a”
tubiera “a1” y “a2”, el comando anterior me imprimirÃa:
/home/a
/home/a1
/home/a2
/home/b
Pero lo que yo quiero, es que me diferencie entre las subcarpetas “a” y
“b”, y las subcarpetas de “a” que son “a1” y “a”, y que a la vez son
“subsubcarpetas” de /home. Es decir, lo que yo quiero, es lo siguiente:
/home/a
/home/a1
/home/a2
/home/b
Pero no se me ocurre la forma de distinguir entre los diferentes niveles
que encuentro dentro de un directorio, a partir del comando que uso
ahora mismo.
¿Hay alguna manera de hacerlo?
Una vez encontrara la manera, supongo que a cada pasada del bucle
bastarÃa con introducir el elemento en su puesto correspondiente en la
estructura TreeView, y asà luego podrÃa imprimirla de forma gráfica en
modo de ventana y ya tendrÃa el tema solucionado.
Gracias.