MULTIMEDIA, Video digital, Grabación, Diseño gráfico, Diseño web, Programación > Webmasters - Diseño Web - Programación - Diseño gráfico

Funcion tree en C

(1/1)

Rubi22:
Hola buenas tardes:

Me han planteado un problema en C, hace tiempo que no programo en este lenguaje asi que he perdido algo de soltura. Mi programa debe simular la funcion tree de msdos. La unica pista que nos han dado es que deberemos utilizar la libreria dir.h.
Supuestamente entonces habra que mostrar el contenido del disco duro por pantalla, supongo que habra que utilizar las funciones argc y argv aunque no recuerdo muy bien como se utilizaban.
La cuestion es que si teneis alguna idea de como enfocar el programa os lo agradeceria. Un saludo a todos¡¡

destroyer:
hola:

Bienvenida al foro rubi22.. . A ver si los compañeros más "puestos" en este tema,  te pueden dar una solución..

Un saludo

¿Ampliaste  disco duro a tu pc?.-  :wink:

ALP:
Hola.

Debes hacer una función recursiva, ya que es la forma más simple de recorrer el árbol de directorios. Utiliza las funciones findfirst() y findnext(). Si el archivo que encuentra es un directorio, vuelves a llamar a la función pasándole el nombre del directorio al que vas a entrar. Por ejemplo:


--- Código: ---tree(char *ruta)
{
     static int nivel = 1;

     if ( chdir(ruta) )
          return;

     if (  findfirst(...)  )
          return;

     nivel++;
     do {

          imprime_nombre_fichero

          si es directorio y no es "." ni ".."
               tree(nombre);

     } while(  !findnext(...) );
     nivel--;

     if (nivel > 1)
          chdir("..");
}
--- Fin del código ---


De esta forma, vas entrando en los directorios y mostrando su contenido. Con la variable nivel, sabes en qué subnivel te encuentras, y si tienes que volver al directorio anterior.

Es sólo una idea, pero puede ser un comienzo.

Un saludo.

Navegación

[0] Índice de Mensajes

Ir a la versión completa