none
FindFile

    Question

  • Hallo Forum,

     ich wollte mit folgendem Code den Pfadnamen des übergeordneten Verzeichnisses ermitteln:

    BOOL boX = clFileFinder.FindFile ("..");
    if (boX == 0)
       dwError = GetLastError();
    boX = clFileFinder.FindNextFile ();
    csParentPath = clFileFinder.GetFilePath().MakeLower();
    

    Dies funktioniert auch, solange ich micht in tiefer verschachtelten Verzeichnissen befinde, zB in E:\SubDirTest\SubSubDirTest.

    Sobald ich mich aber nur in einem Verzeichnisebene unterhalb des Rootverzeichnisses befinde, also zB im Verzeichnis E:\SubDirTest bekomme ich bei FindFile mit GetLastError den Fehler 2  (ERROR_FILE_NOT_FOUND).

     

    Wieso und wie kann ich alternativ den Namen des Übergeordneten Verzeichnisses bekommen.

    Vielen Dank im Voraus.

     

    Gerhard

     

     

    Tuesday, September 28, 2010 7:31 AM

Answers

  • 1. Das Root-Verzeichnis hat keinen Directory Link ..! Der Fehler ist korrekt
    2. PathRemoveFileSpec sollte tun was Du möchtest:
    http://msdn.microsoft.com/en-us/library/bb773748(v=VS.85).aspx
    Es wird einfach das letzte Argument mit Backslash entfernt.
    3. Noch einfacher: Von hinten den Backslash suchen und 0 einsetzen ;)


    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Tuesday, September 28, 2010 7:40 AM
    Moderator