Acceso a directorios
Buenas, estoy haciendo un programa que entre en un directorio y cuente el tamaño de todos los archivos que hay dentro de el.
No me sale bien, me han comentado que tengo que utilizar:
Pero no se como implementarlo, aqui os dejo el codigo:
No me sale bien, me han comentado que tengo que utilizar:
struct stat st;
stat(nom, &st);
if (S_ISREG(st.st_mode)) return st.st_size; /*si es un fichero se retorna su tamaño*/
Pero no se como implementarlo, aqui os dejo el codigo:
#include
#include
#include
#include
#include
#include
int main(int argc, char **argv)
{
DIR *d;
struct dirent *dit;
struct stat info;
int i = 0;
long cont = 0;
if ((d = opendir("lalala")) == NULL) //Abro la carpeta
{
perror("Error de apertura");
return 0;
}
printf("Directorio abierton");
while ((dit = readdir(d)) != NULL) //Recorro la carpeta
{
if (dit -> d_name[0] != '.') //Compruebo que no empiece por '.'
{
i++;
printf("n%st %ld bytes", dit -> d_name, info.st_size); //Muestro por pantalla el nombre y tamaño de cada archivo
cont = cont + info.st_size; //Sumo el tamaño de los archivos
}
}
printf("nnHay %i ficheros con un total de %ld bytesnn", i, cont);
if (closedir(d) == -1) //Cierro la carpeta
{
perror("Error de cierre");
return 0;
}
printf("nDirectorio cerradonn");
return EXIT_SUCCESS;
}
Gracias
Mira la windows.h igual te sirve.