Foros del Web » Programación para mayores de 30 ;) » C/C++ »

¿Qué archivos componen un directorio?

Estas en el tema de ¿Qué archivos componen un directorio? en el foro de C/C++ en Foros del Web. Hola, quisiera saber si hay alguna forma, en lenguaje C, de leer los nombres de los archivos de un directorio en linux, para abrirlos y ...
  #1 (permalink)  
Antiguo 13/12/2012, 16:31
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 15 años, 8 meses
Puntos: 6
¿Qué archivos componen un directorio?

Hola,

quisiera saber si hay alguna forma, en lenguaje C, de leer los nombres de los archivos de un directorio en linux, para abrirlos y usar su contenido a posteriori.

Sé que si en el directorio hay un fichero que contiene los nombres del resto de ficheros que componen dicho directorio, puedo usarlo de puente para abrir el resto de fichero y usar su contenido, pero mi intención es saltarme ese fichero intermedio.

¿Hay alguna manera?

Gracias de antemano,
gonzo
  #2 (permalink)  
Antiguo 13/12/2012, 22:16
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 12 años, 4 meses
Puntos: 94
Respuesta: ¿Qué archivos componen un directorio?

la verdad no entendi que es lo que queres hacer, no entiendo a q te referis con "saltarme ese fichero intermedio"

De todas formas tal vez te sirva la libreria dirent, para lo que necesitas. Saludos
  #3 (permalink)  
Antiguo 14/12/2012, 03:23
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: ¿Qué archivos componen un directorio?

Hola,

imagina que en un directorio están los ficheros "uno.txt", "dos.txt" y "archivos.txt". El contenido de "archivos.txt" es el siguiente

Código C++:
Ver original
  1. // archivos.txt
  2.  
  3. uno.txt
  4. dos.txt

es decir, "archivos.txt" es un fichero que almacena los nombres de los demás ficheros que componen el directorio. A partir de este "archivos.txt" sé que puedo leer el nombre de un archivo (que ocupa una única línea del fichero) y abrirlo para utilizar su contenido. Pero esta "solución" implica tener que llevar un control actualizado de todos los ficheros que se crean/borran del directorio, y quisiera saber si hay alguna forma de evitar esto.

Básicamente, lo que necesito es entrar en un directorio cualquiera y abrir todos los ficheros que haya sin saber, a priori, cuántos son ni qué nombres tienen.

Muchas gracias,
gonzo
  #4 (permalink)  
Antiguo 14/12/2012, 03:29
Avatar de guzzano  
Fecha de Ingreso: julio-2010
Ubicación: Isla de Margarita
Mensajes: 162
Antigüedad: 13 años, 9 meses
Puntos: 13
Respuesta: ¿Qué archivos componen un directorio?

Justo estoy trabajando algo así. Puedes usar las funciones opendir y readdir.
Te doy un ejemplo:

Código C:
Ver original
  1. DIR *directorio;
  2. struct dirent estructura_directorio;
  3.  
  4. if ((directorio = opendir("/home/guzzano")) != NULL)
  5. {
  6.     while ((estructura_directorio = readdir(directorio)) != NULL)
  7.     {
  8.                 // Aquí obtenemos lo que esta dentro del directorio.
  9.         puts(estructura_directorio->d_name);
  10.     }
  11. }
  12. else
  13. {
  14.     puts("No se pude abrir el directorio");
  15. }

Lo de abrir lo que esta adentro, ya con el nombre de lo que se encuentra en el directorio es más fácil hacerlo. Si solo quieres abrir archivos ya que en la carpeta hay directorios puedes usar stat.


Saludos.

Última edición por guzzano; 14/12/2012 a las 03:47
  #5 (permalink)  
Antiguo 14/12/2012, 11:02
 
Fecha de Ingreso: agosto-2008
Mensajes: 240
Antigüedad: 15 años, 8 meses
Puntos: 6
Respuesta: ¿Qué archivos componen un directorio?

Es justo lo que necesitaba guzzano, muchísimas gracias.

Etiquetas: fichero, int
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:09.