Verzeichnis durchsuchen, FindNextFile bricht zu früh ab
-
Hallo folgender Code bricht nach dem 2. Durchlauf ab, d.h. FindNextFile wird einmal aufgerufen und gibt danach 0 zurück, obwohl eben nicht nur 2 Verzeichnisse vorhanden sind.
Was mache ich da falsch?
void ReadDirectories() { WIN32_FIND_DATA ffd; HANDLE hFind; int numdirectories=0; hFind = FindFirstFile(L"F:\\*", &ffd); if (hFind != INVALID_HANDLE_VALUE) { numdirectories++; for (;;) { hFind = FindNextFile(hFind, &ffd); if (hFind == 0) { break; } else { numdirectories++; } } } int error = GetLastError(); numdirectories = 0; }
-
hFind
soll ein Handle sein, welches duFindNextFile
weitergibst. Aber dann weist du dem Handle plötzlich den Rückgabewert vonFindNextFile
zu, was einBOOL
ist. Kein Handle. Und dann arbeitest du mit einem Schrotthandle weiter und erwartest, dass dir die Funktion keinen Schrott zurückgibt.Du solltest vielleicht erstmal lernen, Dokus zu lesen.
-
oder öfter mal eine Pause machen. Danke!
-
Wade123 hier dein lösung:
https://vcpptips.wordpress.com/tag/findnextfile/