Verzeichnis durchsuchen und Datei zeilenweise verarbeiten
-
Hallo Zusammen,
ich möchte gerne folgendes der Reihe nach machen:1. Ein Verzeichnis mit dem Namen "c:\spiele" öffen und durchsuchen (nicht rekursiv!) nach allen
Dateien die im Dateinamen den Text "_kurz.txt" haben. Die gefundenen Dateinamen (mit Pfadangabe)
sollen dann in einem Array gespeichert werden. Es können in dem Verzeichnis durchaus mehrere
Dateien (ab_kurz.txt, df_kurz.txt, gg_kurz.txt usw.) mit diesen Suchkriterien vorkommen. D.h.
also dass das Array 1-n Elemente aufnehmen sollte.2.Später sollen dann die im Array gespeicherten Dateien (bzw. Dateinamen) der Reihe nach z.B.
über eine For-Schleife geöffnet und Zeile für Zeile durchgegangen werden. Jede zeile soll
dann z.B. auf einen bestimmten Inhalt geprüft werden.Ich hab schonmal ein bisschen was zusammengeflickt, aber leider nur Stückwerk. Ausserdem will
ich ja die Dateinamen nicht reischreiben sondern dass vorher ein Verzeichnis durchsucht wird
und dann die gefundenen Dateinamen automatisch dem Array zugewiesen werden. Wer kann mir mit
einem verständlichen (ich bin Anfänger) Code weiterhelfen? Habe Windows XP im Einsatz.//=========== Array für Namen der Kurzdateien erstellen string array[] = {"c:\\a_kurz.txt", "c:\\b_kurz.txt", "c:\\c_kurz.txt"}; // Anzahl der Array Elemente feststellen int anzahl = sizeof(array)/sizeof(array[0]); //=========== Jede Kurzdatei durchlaufen for(int kurzindx = 0; kurzindx < anzahl; kurzindx++) { cout<<array[kurzindx]<<endl; vector<string> v; //ifstream in(array[kurzindx]); //geht nicht mit Arrayelement ifstream in("c:\\testdatei.txt"); string line; string inhalt; while(getline(in, line)){v.push_back(line);} for(int i =0;i <v.size(); i++) { inhalt = v[i]; cout<<inhalt<<endl; if(inhalt == xyz){mach was}else{mach was anderes} } };vielen Dank im voraus für eure Mühe! Gruss, rommi
-
Hi,
Benutze CFindFile aus der MFC (wir sind ja hier im MFC Forum) um die File aus einem Directory aufzulisten.
http://msdn.microsoft.com/en-us/library/f33e1618.aspxAlternativ kannst Du auch direkt die WinAPI benutzen (FindFirstFile(..) / FindNextFile(..)).
Simon