CFileFind erkennen ob "Zugriff verweigert" bzw. sonstiger Fehler oder Leer.



  • Hallo,
    ich verwende eine rekursive Funktion die CFindFile zum durchforsten eines Verzeichnissbaumes verwendet.

    Wie unterscheide ich am schlauesten zwischen einem Verzeichniss das einfach leer ist (bzw. zum Suchstring nichts findet) und einem Fehler wie "Zugriff verweigert" oder einem Datenträgerfehler.

    BOOL		finderFound;
    CFileFind	finder;
    CString searchString = _Directory + _FilterString;
    finderFound = finder.FindFile(searchString);
    while (finderFound)
    {
    	finderFound = finder.FindNextFile();
    }
    

    So ist ja die Vorgabe von MS.
    Wenn ich GetLastError aufrufe wenn (finderFound == False) ist, bekomme ich z.B. die Fehler 5 Zugriff verweigert, 2 Das System kann die angegene Datei nicht finden.

    Ich möchte nun ungern sagen
    2 = leer
    rest = fehler

    Vieleicht kommt unter anderen Umständen Fehler ?7? wenn leer bei FAT32 oder was weiß ich.

    Wie kann ich sicher zwischen leer und Fehler unterscheiden?

    Danke

    Stefan


Anmelden zum Antworten