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

Como recorrer un directorio en C

Estas en el tema de Como recorrer un directorio en C en el foro de C/C++ en Foros del Web. Hola a todos: Soy relativamente nuevo en ansi C y quisiera saber como leer todos los ficheros contenidos en un directorio para leerlos linea a ...
  #1 (permalink)  
Antiguo 10/09/2007, 07:20
 
Fecha de Ingreso: junio-2004
Mensajes: 185
Antigüedad: 20 años, 7 meses
Puntos: 0
Como recorrer un directorio en C

Hola a todos:

Soy relativamente nuevo en ansi C y quisiera saber como leer todos los ficheros contenidos en un directorio para leerlos linea a linea.


Me puede ayudar ?
Se lo agradecería
Ariel
  #2 (permalink)  
Antiguo 11/09/2007, 09:16
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 1 mes
Puntos: 52
Re: Como recorrer un directorio en C

Pues si eres nuevo, la verdad te va a costar trabajo entender como se hace. Mas nunca dije que fuera imposible.

Dependiendo del sistema operativo, hay librerias o sino, llamadas al sistema que te dan informacion del sistema de archivos, incluyendo lo que pides.
La verdad, yo no se como hacerlo bajo Windows, aunque si realmente lo necesitara, buscaria en la MSDN, o en google.

En linux pues hay una serie de librerias que te ayudan para el manejo de archivos y directorios. Todo esto los tengo en un libro, por lo que cuando lo necesito, solo lo consulto.

Aun asi, creeme, es una tarea un poco confusa para alguien que apenas aprende.

Saludos
  #3 (permalink)  
Antiguo 11/09/2007, 10:58
 
Fecha de Ingreso: junio-2004
Mensajes: 185
Antigüedad: 20 años, 7 meses
Puntos: 0
Re: Como recorrer un directorio en C

Busqué como hacerlo y salió esto, no me parece tan complicado. Estoy usando la gcc.

Código PHP:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <dirent.h>
#include <errno.h>

int method();
int main(int argcchar **argv) {
    
DIR *dip;
            
struct dirent   *dit;

            
int             i 0;

            
/* check to see if user entered a directory name */
           /* if (argc < 2)
            {
                    printf("Usage: %s <directory>\n", argv[0]);
                    return 0;
            }*/

            /* DIR *opendir(const char *name);
             *
             * Open a directory stream to argv[1] and make sure
             * it's a readable and valid (directory) */
          
if ((dip opendir("src")) == NULL)
            {
                    
perror("opendir");
                    return 
0;
            }

            
printf("Directory stream is now open\n");

            
/*  struct dirent *readdir(DIR *dir);
             *
             * Read in the files from argv[1] and print */
            
          
while ((dit readdir(dip)) != NULL)
            {
                    
i++;
                    
printf("\n%s"dit->d_name);
                    
printf(" %d"dit->d_fd);
            }

            
printf("\n\nreaddir() found a total of %i files\n"i);

            
/* int closedir(DIR *dir);
             *
             * Close the stream to argv[1]. And check for errors. */
            
if (closedir(dip) == -1)
            {
                    
perror("closedir");
                    return 
0;
            }

            
printf("\nDirectory stream is now closed\n");*/
      
method();      
    return 
EXIT_SUCCESS;

saludos
  #4 (permalink)  
Antiguo 11/09/2007, 13:00
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 22 años, 1 mes
Puntos: 52
Re: Como recorrer un directorio en C

Ahi lo tienes. Una libreria que hace las llamadas al sistema por ti.
Cualquier duda nos avisas.

Saludos
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 17:56.