Unterverzeichnisse aus Verzeichnis auslesen
-
Hallo
Im FAQ hab ich zwar etwas gefunden (http://www.c-plusplus.net/forum/viewtopic.php?t=39284&start=0&postdays=0&postorder=asc&highlight=), jedoch kann ich mit dem nicht viel anfangen
Ich habe folgendes Problem:
Der Benutzer kann in meinem Programm in einer DirectoryListBox ein Verzeichnis auswählen. Nun möchte ich, alle Unterverzeichnisse in diesem Verzeichnis auslesen, bzw. in eine ComboBox schreiben. Ich hoffe jemand kann mir sagen, wie ich die Unterverzeichnisse bzw. ihre Namen aus dem angegebenen Verzeichnis auslesen kann.
-
Hi,
Stichwort Rekursion.
Hier mal ein Beispiel. Es wird nach einem bestimmten Verzeichnis gesucht. Viel Spass beim Anbpassen
/**********************************************************************/ /* Sucht in "StartDir" und allen untergeordneten Verzeichnissen nach */ /* dem Verzeichnis "File" und schreibt als Ergebnis den kompletten */ /* Pfad in "ResultPath" */ /* Rückgabewert: true = Suche ok */ /* false = Suche nicht ok */ /**********************************************************************/ bool SearchFile(char* StartDir, char* File, char* ResultPath) { bool done; struct ffblk ffblk; char OldDir[256], AktDir[256]; strcpy(AktDir, StartDir); chdir(StartDir); //Erstes gültiges Verzeichnis suchen done = findfirst("*.*", &ffblk, FA_DIREC); while ( ( (strcmp(ffblk.ff_name, ".") == 0) || (strcmp(ffblk.ff_name, "..") == 0) ) && (!done) ) done = findnext(&ffblk); while (!done) { //gesuchtes Verzeichnis gefunden? if (strcmp(File, ffblk.ff_name) == 0) { strcpy(ResultPath, AktDir); strcat(ResultPath, "\\"); strcat(ResultPath, ffblk.ff_name); return true; } //Irgendein Verzeichnis gefunden? if ( (!done) && (ffblk.ff_attrib == FA_DIREC) ) { strcat(AktDir,"\\"); strcat(AktDir, ffblk.ff_name); getcwd(OldDir, 1024); if ( SearchFile(AktDir, File, ResultPath) ) return true; chdir(OldDir); strcpy(AktDir, OldDir); } done = findnext(&ffblk); } return false; }
-
GaZmo schrieb:
Im FAQ hab ich zwar etwas gefunden [...], jedoch kann ich mit dem nicht viel anfangen
Die Kommentarzeile "// ist ein Verzeichnis" sagt dir nichts!?
-
ähm, hätte ich es genauer angeschaut, hätte es mir wohl etwas gesagt, sorry für den wieder mal überflüssigen post...
Danke JoKo für deine Hilfe
-
Jansen schrieb:
GaZmo schrieb:
Im FAQ hab ich zwar etwas gefunden [...], jedoch kann ich mit dem nicht viel anfangen
Die Kommentarzeile "// ist ein Verzeichnis" sagt dir nichts!?
Jansen: Wozu denn lesen, wenn mans einfach kopieren kann? (o;
-junix