Autor Tema: Funcion tree en C  (Leído 3924 veces)

Desconectado Rubi22

  • Newbie
  • *
  • Mensajes: 1
Funcion tree en C
« en: 05 de Octubre de 2004, 03:22:11 pm »
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¡¡

Desconectado destroyer

  • Administrator
  • *
  • Mensajes: 15869
  • Si quieres cambiar al mundo, cámbiate a ti mismo
    • cajondesastres.com De todo un poco
Funcion tree en C
« Respuesta #1 en: 05 de Octubre de 2004, 05:59:06 pm »
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:

Desconectado ALP

  • Member
  • ***
  • Mensajes: 234
Funcion tree en C
« Respuesta #2 en: 05 de Octubre de 2004, 08:38:20 pm »
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: [Seleccionar]
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("..");
}


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.
Si no puedes deslumbrar con tu sabiduría, desconcierta con tus gilipolleces.

 

Aviso Legal | Política de Privacidad | Política de Cookies

el contenido de la web se rige bajo licencia
Creative Commons License