Verzeichnis durchsuchen



  • Servus,

    hab mir bereits ein Handle zum Verzeichnis öffnen erstellt und auch ein Handle zum Finden. Nur leider will dieses nicht funktionieren.

    CString strFolder = _T(""), buffer;
    
    	BROWSEINFO      brInf;
    	LPITEMIDLIST    pidl;
    	TCHAR           lpBuffer[MAX_PATH];
    
    	brInf.hwndOwner      = GetSafeHwnd();
    	brInf.pidlRoot       = NULL;
    	brInf.pszDisplayName = lpBuffer;
    	brInf.lpszTitle      = _T("Choose directory");
    	brInf.ulFlags        = BIF_NEWDIALOGSTYLE;
    	brInf.lpfn           = NULL;
    	brInf.lParam         = 0;
    	brInf.iImage         = 0;
    
    	pidl = SHBrowseForFolder(&brInf);
    
    	if( pidl )
    	{
    		SHGetPathFromIDList(pidl, lpBuffer);
    		strFolder = lpBuffer;
    	}
    	MessageBox(strFolder);
    
    	CFileFind finder;
    	int i = 0;	
    	BOOL bResult = finder.FindFile(strFolder);
    
    	while(bResult)
    	{		
    		bResult = finder.FindNextFile();
    		buffer=finder.GetFileName();
    		i++;
    	}
    

    Egal welches dir ich anwähle, er geht nur einmal durch die Schleife. Was ist da falsch?



  • Aha, MSDN hat mir mal endlich einen sinnvollen Ratschlag gegeben:

    http://msdn.microsoft.com/en-us/library/scx99850(VS.80).aspx

    [cpp]if( pidl )
    {
    SHGetPathFromIDList(pidl, lpBuffer);
    strFolder = lpBuffer;
    }
    MessageBox(strFolder);

    strFolder += ("\*.*");

    CFileFind finder;[/cpp]

    Sonst hat er nur das Verzeichnis selbst angeschaut und nicht rein.
    Hoffe, dass hilft anderen auch mal 🙂


Anmelden zum Antworten