Rekursion-Ordner anzeigen
-
Hi
Ich hab ein problem nämlich das ich es nicht schaffe folgenden Code so zu ändern das er in jeden gefunden Ordner reingeht und da drin nochmal alle Ordner anzeigen lässt.#include <sys/stat.h> #include <sys/types.h> #include <unistd.h> #include <stdio.h> #include <string.h> #include <errno.h> #include <dirent.h> #include <stdlib.h> int VerzeichniseAnzeigen(char direc[128]); int main (int argc, char **argv) { VerzeichniseAnzeigen("."); return 0; } int VerzeichniseAnzeigen(char direc[128]) { DIR *dir; struct dirent *dirzeiger; /*Verzeichnis öffnen */ if((dir=opendir(direc)) == NULL) { fprintf(stderr,"Fehler bei opendir: %s\n", strerror(errno)); return (EXIT_FAILURE); } /* Das komplette Verzeichnis auslesen */ while((dirzeiger=readdir(dir)) != NULL) { struct stat attribut; /*auf Fehler checken*/ if(stat(dirzeiger->d_name, &attribut) == -1) { fprintf(stderr,"Fehler bei stat: %s\n", strerror(errno)); return (EXIT_FAILURE); } if (strcmp(dirzeiger->d_name,"..") && strcmp(dirzeiger->d_name,".")) { /* Verzeichnisse ausgeben */ if(S_ISDIR(attribut.st_mode)) { printf(dirzeiger->d_name); printf("\n"); //VerzeichniseAnzeigen(dirzeiger->d_name); } } } closedir(dir); return EXIT_SUCCESS; }
Danke für jeden Tipp im Vorraus!
Gruß durchschnittsuserPS: Ich verwende g++ unter Suse 9.3
-
Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
und was geht nicht?
-
Ich hab halt keine Ahnung wie man da jetzt rekursion einbaut. Ich habs mal mit (s.h unten) VerzeichniseAnzeigen(dirzeiger->d_name);
Aber es tut net.
-
mmh hab wohl falsch gefragt... :p
Das Problem ist das ich als argument von VerzeichniseAnzeigen:int VerzeichniseAnzeigen(char direc[128]) {
nur den CurrentDirectory angeben kann also "." sonst kommt die Meldung: "Fehler bei stat: No such file or directory"
Kann mir da jemand helfen?
Danke
-
durchschnittsuser schrieb:
mmh hab wohl falsch gefragt... :p
Das Problem ist das ich als argument von VerzeichniseAnzeigen:int VerzeichniseAnzeigen(char direc[128]) {
nur den CurrentDirectory angeben kann also "." sonst kommt die Meldung: "Fehler bei stat: No such file or directory"
Kann mir da jemand helfen?
DankeIch würde sagen der rekursive Aufruf von VerzeichniseAnzeigen() ist schon an der richtigen Stelle, du musst du dir nur erst den vollständigen Pfad aus direc und dirzeiger->d_name zusammenbauen.
K
-
Ich bin noch ziemlich neu in C++ und hab deswegen keine ahnung wie ich das anstellen soll. :p