GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Zählen der Anzahl der Dateien in einem Verzeichnis mit C

Keine Garantie, dass dieser Code kompiliert wird, und er ist wirklich nur mit Linux und den BSDs kompatibel:

#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);

Siehe readdir .


Wenn Sie auch Unterverzeichnisse einbeziehen möchten, können Sie diese Funktion verwenden, die ich in einigen meiner Codes verwende. Sie sollten es wahrscheinlich ändern, um mehr Fehlerprüfungen einzuschließen und verschiedene Verzeichnistrennzeichen zu unterstützen.

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. Listen Sie Dateien rekursiv in der Linux-CLI mit Pfad relativ zum aktuellen Verzeichnis auf

  2. Wie finde ich den Besitzer einer Datei oder eines Verzeichnisses in Python?

  3. Maximale Anzahl von Dateien/Verzeichnissen unter Linux?

  4. Dateien in einem Linux-Verzeichnis rekursiv zählen

  5. Wie zähle ich die Anzahl der Dateien in jedem Verzeichnis?

So finden Sie Dateien über die Befehlszeile im Linux-Terminal

Linux-Anfänger:Verwalten Sie Dateien mit dem Terminal unter CentOS 8

Zählen Sie die Anzahl der Dateien in einem Verzeichnis in Linux

So zählen Sie die Anzahl der Dateien in einem Verzeichnis in Linux

Absoluter vs. relativer Pfad in Linux:Was ist der Unterschied?

Linux:Anzahl der Dateien in einem Verzeichnis und Unterverzeichnissen finden