CFileDialog aktuelles Arbeitsverzeichnis ermittelen



  • Hallo,

    MFC VS2013 MDI CWinApp::OnFileOpen

    wie oben genannt, möchte ich das momentane lpstrInitialDir ermitteln, das CFileDialog jetzt nutzen wird, wenn ich den Dlg aufrufen würde.

    Aus dem Beschreibung in der MSDN werde ich nicht so richtig schlau und in der Registry finde ich keinen Bezug zu bspw. MyApp.exe und "D:\Test\"

    Kann mir da jemand bitte weiterhelfen ?

    Anke
    -Uwe



  • Versuchs doch mal mit:

    char buffer[_MAX_PATH];
    _getcwd(buffer, _MAX_PATH];

    In buffer müsste das das aktuelle Verzeichnis stehen ...
    Vielleicht noch mit:

    CString str;
    str = buffer;



  • Hallo Biter,

    vielen Dank für Deine Hilfe

    das _getcwd() liefert das momentane Arbeitsverzeichnis des Programmes, nicht aber das Verzeichnis, welches CFileDialog aufmacht, oder aufmachen würde.

    Möglicherweise habe ich mich auch unklar ausgedrückt.

    Mein Programm lädt PDFs und zeigt sie an. Der Anwender "kommentiert" dieses PDF und speichert das ganze in MySQL ab. Danach ruft der Benutzer wieder über CWinApp::OnFileOpen das nächste PDF auf.

    Ich möchte nun den Arbeitsschritt mit einem Button "nächstes Pdf laden" vereinfachen. In meinem jugendlichen Leichtsinn dachte ich mir, dieser Datenpfad wird sicherlich irgendwo abgespeichert sein und man kann diesen einfach auslesen. Der wird auch irgendwie über die Sitzung hinaus gespeichert, aber ich weiß nicht wo. Die MSDN ist an diesem Punkt für mich sehr vage in ihrer Erklärung.

    Wenn alle Stricke reißen, so wird ich ihn mir selber merken müssen.

    Vielleicht hast Du, oder jemand anderes, noch eine Idee ?

    Danke
    -Uwe



  • Wenn du über CWinApp::OnFileOpen lädst dann geh ich mal davon aus das du das ganze dann über CDocumet abhandelst also eine entsprechende Klasse dafür hast (wenn du das Document- View- Modell benutzt) dann kannst du dir doch den Pfad ganz einfach über die Funktion GetPathName() aus deiner Documentenklasse holen.



  • Hallo CTecS,

    ich habe das nun auch so in der Dokumentenklasse gemacht. Zusätzlich speichere ich den Pfad in der reg. für die nächste Sitzung ab.

    Auch habe ich in den unendlichen Weiten des Internet gesucht. Ich bin zwar nicht der erste mit dieser CFileDialog-Frage, aber eine befriedigende Antwort gab es ( fand ich ) nicht.

    Sehr seltsam

    Danke
    -Uwe


Anmelden zum Antworten