FileDialog, DOS-Pfad als Rückgabewert



  • Hallo,

    ich habe folgendes Problem. Ich soll zu einem vorhandenen C-Programm eine GUI in C++ erstellen, die dann per Shell-Aufruf das alte Programm bedient.
    Der Aufruf-String sähe dann folgendermaßen aus:

    projekt.exe C:\abc\datei1.txt C:\cba\datei2.txt

    Jetzt habe ich folgende Probleme:

    1. In C müssen die Pfade mit doppelten "\" angegeben werden, das kann man ja noch selber zerstückeln und hinpfriemeln.

    2. Es gibt Ordner wie z.B. "Eigene Dateien", diese werden wegen dem Leerzeichen nicht akzeptiert.

    Hat jemand eine Idee, wie ich mir mit dem FileDialog einen alten DOS-Pfad zurückgeben kann (z.B. C:\Eigene~1\...), oder muss ich das auch mühselig selber machen?
    Wäre super, wenn jemand eine komfortablere Methode oder Vorgehensweise für mich hätte ...

    Vielen Dank und viele Grüße

    M.Boschet



  • Hallo, die Umwandlung von "Langen" in "Kurze" Dateinamen geschieht mit der Funktion

    const DWORD dwSize(256);
    CHAR cBuffer[dwSize];
    
    DWORD dwActualSize = GetShortPathName((m_czLongPath),cBuffer,dwSize);
    

    In cBuffer steht dann der "kurze" Pfad!



  • dankeschön funktioniert wunderbar!!!


Anmelden zum Antworten