CFileDialog - kompletter Pfad des zu speichernden Files



  • Hallo zusammen,

    ich nutze einen CFileDialog, um eine Datei zu speichern. Der Ablauf ist so, dass der zu speichernde Dateiname ausgewählt wird, dann wird eine Berechnung ausgeführt (die zeitverzögert über einen Button ausgelöst wird) und anschließend die Ergebnisse abgespeichert.

    Mein Problem ist, dass ich vor der Auslösung der Berechnung den kompletten Pfad gern in einem EditFeld anzeigen würde. Mit dlg.GetFileName() bekomme ich aber nur den Dateinamen, nicht den kompletten Pfad. Gibt es eine Methode, die mir den kompletten Pfad zurückgibt bzw. das aktuelle Verzeichnis?

    CFileDialog dlg(FALSE,
    						".txt",
    						NULL,
    						OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,
    						"Text-Dateien (*.txt)|*.txt|Alle (*.*)|*.*||",
    						NULL,
    						0
    						);
    
             //Berechnung wird ausgeführt
    
    	if(dlg.DoModal() ==IDOK)
    	{
            //hier wird nur der Dateiname ins Feld geschrieben,
            //nicht der komplette Pfad =(
    		m_strDestination = dlg.GetFileName();
    		CEdit *pCEd = static_cast<CEdit*>(GetDlgItem(IDC_EDIT));
    		pCEd->SetWindowText(m_strDestination.c_str());
    
    		CStdioFile file;
            file.Open(m_strDestination.c_str(), CFile::modeCreate | CFile::modeWrite);
            file.WriteString("Testeintrag\n");
            file.Close();
    	}
    

    Vielen Dank schonmal 🙂



  • Ja, gibt es - GetPathName()



  • Wo ist denn der Smiley zum Rotwerden? Den könnt ich grad gut gebrauchen. Ich hatte vorher eigentlich in der MSDN gesucht, aber offensichtlich ziemlich schlampig...wie auch immer. Besten Dank auf jeden Fall 🙂


Anmelden zum Antworten