Miren la cuestion es que estoi realizando un recorrido de directorios bastante simple.
Recorro una carpeta la cual si tiene mas carpetas dentro me dira cuanto elementos tengo.
En caso de que tenga ficheros .txt me imprimira los X caracteres que yo quiera.
La cuestion es que el fopen de ficheros no me da NULL cuando es otro tipo ya sea .c o .pdf
Me preguntaba como podria solucionarlo o como ago con la funcion stat() para diferenciar unos de otros.. GRACIAS DE ANTEMANO¡¡
Código c:
Ver original
#include <stdio.h> #include <stdlib.h> #include <dirent.h> #include <string.h> #include <sys/types.h> #include <sys/stat.h> #define MAX 100 int main( int argc, char *argv[]) { DIR *dir; FILE *f=NULL; int ent,numeroEntradas; struct dirent *mi_dirent; struct dirent **entradas= NULL; struct stat datosF; char nombre[MAX]; char extension[MAX]; char Elemento[10]; char c; int x=0; int cont=2; if ( (dir = opendir( argv[1] )) == NULL ) { } while ( (mi_dirent = readdir( dir )) != NULL ) { { ent=stat(extension,&datosF); if (S_ISDIR(datosF.st_mode)){ numeroEntradas = scandir (extension, &entradas, NULL, NULL); if ((numeroEntradas-2)!=1) { } } if (S_ISREG(datosF.st_mode)) { if ( f != NULL){ x=0; x++; } } } } } closedir( dir ); return 0; }