GNU/Linux >> Tutoriales Linux >  >> Linux

Contando el número de archivos en un directorio usando C

No hay garantía de que este código se compile, y en realidad solo es compatible con Linux y BSD:

#include <dirent.h>

...

int file_count = 0;
DIR * dirp;
struct dirent * entry;

dirp = opendir("path"); /* There should be error handling after this */
while ((entry = readdir(dirp)) != NULL) {
    if (entry->d_type == DT_REG) { /* If the entry is a regular file */
         file_count++;
    }
}
closedir(dirp);

Ver readdir .


Si también desea incluir subdirectorios, puede usar esta función que estoy usando en parte de mi código. Probablemente debería modificarlo para incluir más comprobación de errores y admitir diferentes separadores de directorio.

int countfiles(char *path) {
    DIR *dir_ptr = NULL;
    struct dirent *direntp;
    char *npath;
    if (!path) return 0;
    if( (dir_ptr = opendir(path)) == NULL ) return 0;

    int count=0;
    while( (direntp = readdir(dir_ptr)))
    {
        if (strcmp(direntp->d_name,".")==0 ||
            strcmp(direntp->d_name,"..")==0) continue;
        switch (direntp->d_type) {
            case DT_REG:
                ++count;
                break;
            case DT_DIR:            
                npath=malloc(strlen(path)+strlen(direntp->d_name)+2);
                sprintf(npath,"%s/%s",path, direntp->d_name);
                count += countfiles(npath);
                free(npath);
                break;
        }
    }
    closedir(dir_ptr);
    return count;
}

Linux
  1. ¿Cómo obtener un recuento de archivos en un directorio usando la línea de comando?

  2. ¿Cómo contar la cantidad de archivos en un directorio y eliminar los más antiguos si el número supera los 5?

  3. cómo encontrar el propietario de un archivo o directorio en python

  4. Conteo recursivo de archivos en un directorio de Linux

  5. Uso de / al usar cd

Cómo encontrar archivos usando la línea de comandos en la terminal de Linux

Principiantes de Linux:administre archivos usando la terminal en CentOS 8

Contar el número de archivos en un directorio en Linux

Cómo contar el número de archivos en un directorio en Linux

Ruta absoluta vs relativa en Linux:¿Cuál es la diferencia?

Linux:busque el número de archivos en un directorio y subdirectorios