Ich versuche, nur die Verzeichnisse aus einem Pfad zu zählen, aber es funktioniert nicht. Also, ich möchte nicht beide Dateien und Verzeichnisse nummerieren, ich will nur die Verzeichnisse. Kannst du mir bitte helfen? Der Code:Wie zähle ich nur die Anzahl der Verzeichnisse von einem Pfad
int listdir(char *dir) {
struct dirent *dp;
struct stat s;
DIR *fd;
int count = 0;
if ((fd = opendir(dir)) == NULL) {
fprintf(stderr, "listdir: can't open %s\n", dir);
}
while ((dp = readdir(fd)) != NULL) {
if (!strcmp(dp->d_name, ".") || !strcmp(dp->d_name, ".."))
continue;
stat(dp->d_name, &s);
if (S_ISDIR(s.st_mode))
count++;
}
closedir(fd);
return count;
}
Verwendung 'S_ISREG()' zu sagen, ob ein Verzeichnis-Eintrag ist eine reguläre Datei, sonst ist es optimieren weg (oder ein Link). – ocket8888
Es funktioniert nicht ... – Sebi95