Nuestro software debe buscar archivos dentro de un directorio determinado, ya sea un archivo especial, una recopilación de datos del disco duro, una búsqueda de plugins, etc…
Hemos elegido lenguaje C para hacer esto, porque en bash podemos llamar a ls o find y apaga y vámonos.
Estas funciones, nos recordarán al uso de archivos con fopen() y fclose().
Para usar esta implementación, como veremos en el ejemplo, debemos incluir <sys/types.c> y <dirent.h> y, en principio, empezaremos con un ejemplo sencillo que lista los archivos del directorio actual (una vez tenemos el nombre y la ruta del archivo podemos hacer con él lo que queramos):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | #include <stdlib.h> #include <stdio.h> #include <sys/types.h> #include <dirent.h> /* Función para devolver un error en caso de que ocurra */ void error(const char *s); /* Función que hace algo con un archivo */ void procesoArchivo(char *archivo); int main() { /* Con un puntero a DIR abriremos el directorio */ DIR *dir; /* en *ent habrá información sobre el archivo que se está "sacando" a cada momento */ struct dirent *ent; /* Empezaremos a leer en el directorio actual */ dir = opendir ("."); /* Miramos que no haya error */ if (dir == NULL) error("No puedo abrir el directorio"); /* Una vez nos aseguramos de que no hay error, ¡vamos a jugar! |
Últimos comentarios