Verzeichnis + Unterverzeichnis durchsuchen
-
Hallo ich möchte mit C++ ein Verzeichnis durchsuchen.
Die Struktur lautet wie folgt:
Hauptverzeichnis:
Unterverzeichnis 1 | Unterverzeichnis 2, also parallel.
Nun möchte ich anhand einer Zahl eine Datei finden, die in einem Unterverzeichnis liegt.
Beispiel "5.doc"Zurückgeliefert hätte ich gerne den Ordnernamen.
1. Es können in beiden Ordnern die Datei vorhanden sein, dann brauche ich eine Meldung: in Ordner bla, und Ordner blub gefunden.
2. Es kann sein, dass die Datei garnicht vorhanden ist, entsprechende Fehlermeldung,
3. Nur diese Verzeichnisse sollen durchsucht werden, keine weiteren.Könnt ihr mir helfen? Ich bin leider C mäßig gar nicht fit. Ich würde wohl über system() einen Unixbefehl ausgeben, aber das wäre Pfusch.
Grüße
-
Mit C oder mit C++?
C++: http://www.boost.org/libs/filesystem/
C: http://en.wikibooks.org/wiki/C_Programming/POSIX_Reference/dirent.h
-
Warum denkst du dein Programm sollte das können?
Es gibt bereits ein Programm, das sowas macht. Und zwar ohne dabei über die Fallstricke zu stolpern, die es bei diesem Problem zu beachten gilt. Warum also die gleiche Funktionalität nochmal halbherzig in deinem Programm implementieren?
Wo liegt der Vorteil, wenn der User das direkt mit deinem Programm machen kann, anstatt einfach das zu nehmen, das er sonst dafür nimmt und dessen Bedienung er gewohnt ist?
Es kann durchaus sein, dass es sinnvoll ist, die Funktionalität in deinem Programm anzubieten. Das musst letztendlich du wissen.
Es gibt übrigens auch schönere Methoden ein anderes Programm aufzurufen. Guck dir mal die exec-Familie i.V.m. fork an. Da hast du entsprechend Kontrolle darüber, was mit Input und Output des aufzurufenden Programms passiert. Außerdem vermeidest du damit die Shell.