CFileDialog -> letzte Pfadangabe vormerken
-
hi,
Vielen Dank, das ist eine sehr schicke Lösung, und funktioniert einwandfrei.

Ich habe aber ein weiteres problem:
Ich habe ein Datei-speichern-unter-Fenster, das aber nicht speichern kann.
WEiss net warum!Hier ist mal der Code dazu:
szFilter ="Text-Dateien|*.txt|HTML-Dateien|*.htm|Word-Dateien|*.doc||"; CString sfilename; CFileDialog *m_dlgFile = new CFileDialog(FALSE, NULL, "Repository_Eingabe.txt", OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT , szFilter); m_dlgFile->m_ofn.lpstrInitialDir = "C:\\apps\\Flatfiles"; m_dlgFile->m_ofn.lpstrTitle = "Datei-speichern..."; if(m_dlgFile->DoModal() == IDOK) { sfilename = m_dlgFile->GetPathName(); } UpdateData(FALSE);Kann mir jemand sagen, warum es nicht tut, was es soll?
Im Explorer wird diese Datei nicht im anderen Pfad angezeigt, sondern bleibt immer noch im selben.Tanya
-
Der Filedialog speichert gar nichts, er liefert nur den eingestellten Pfad zurück. Woher sollte er wissen welche Daten wie zu speichern sind? Folgender Code ist bei mir in der IDOK eingebaut um eine Liste von Stings in eine Textdatei zu speichern.
CString strpath;
strpath = dlg.GetPathName();
CStdioFile f;
int i=0;
if(f.Open( strpath, CFile::modeWrite |CFile::modeCreate | CFile::typeText|CFile::modeNoTruncate ,NULL ))
{if(f.GetLength( )>2)
{if(AfxMessageBox ("Datei überschreiben ? ", MB_YESNO,0)==IDNO)
{
f.Close();
m_pDlg1 -> OnCancel();
return;
}
else
{
f.Close();
f.Open( strpath, CFile::modeWrite |CFile::modeCreate | CFile::typeText,NULL );
}
}f.SeekToBegin();
while(i < num)
{i++;
f.WriteString(m_strArray.GetAt(i));
}
m_pDlg1 -> OnCancel();
}
else
{
AfxMessageBox ("Datei konnte nicht geöffnet werden !", MB_ICONEXCLAMATION,0);
}
f.Close();