=====Navigation in den Verzeichnissen unter Windows (2000, XP, Vista)===== Um Dateien stapelweise oder nach bestimmten Kriterien abarbeiten zu können, verwendet man dazu die Funktionen [[http://msdn.microsoft.com/en-us/library/aa364418(VS.85).aspx FindFirstFile]] und [[http://msdn.microsoft.com/en-us/library/aa364428(VS.85).aspx FindNextFile]]. Die Attribute der damit gefundenen Dateien bzw. Verzeichnisse können mittels der [[http://msdn.microsoft.com/en-us/library/aa365740(VS.85).aspx WIN32_FIND_DATA]] Struktur abgefragt werden. Das folgende Programm soll als Vorlage dienen und verdeutlicht den Einsatz. %%(cpp) #include #include #include //Benötigter Header using std::cin; using std::cout; using std::string; using std::endl; int main() { string path; cout << "Pfad fuer das zu durchsuchende Verzeichnis eingeben: " << endl; getline(cin, path); path = path + "\\*"; // Beginn der Navigation in den Verzeichnissen HANDLE FileHandle; WIN32_FIND_DATA wfd; FileHandle = FindFirstFile(path.c_str(),&wfd); do { // In jedem Ordner existieren die Navigationsverzecihnisse '.' und '..' // Eintrag nur behandeln, wenn es nicht '.' oder '..' ist if (!( (wfd.cFileName[0]=='.') && ( (wfd.cFileName[1]=='.' && wfd.cFileName[2]==0) || wfd.cFileName[1]==0 ) )) { // Z. B. auf Verzeichnisse untersuchen if (wfd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { cout << "Verzeichnis: " << wfd.cFileName << endl; // Hier könnte man dasselbe nochmal machen, um auch die // Unterverzeichnisse zu scannen } } } while (FindNextFile(FileHandle,&wfd)); FindClose(FileHandle); return 0; } %% Die Ausgabe sind die Unterverzeichnisse für den angegebenen Pfad. Für den Fall, dass dieses Programm unter MS Visual Studio kompiliert werden soll, muss der **Zeichensatz** als **"Nicht festgelgt"** eingestellt werden. Projekt > Eigenschaften > Konfigurationseigenschaftn > Allgemein > Zeichensatz [[http://www.c-plusplus.de/forum/index.php Quelle]] ---- Siehe auch {{backlinks}}