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;
    }
    


  • Alles?

    hFind soll ein Handle sein, welches du FindNextFile weitergibst. Aber dann weist du dem Handle plötzlich den Rückgabewert von FindNextFile zu, was ein BOOL 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!




Log in to reply