Problem mit auslesen und übergeben von Pfaden
-
Hallo lieber Community,
ich habe ein Problem mit der fopen()-Funktion der FILE Klasse. Ich lese aus einer Datei einen Pfad als CString auf folgende Art und Weise aus:
char* buff=new char[255]; CString directory; FILE* fp; fp=fopen("C:\\blablabla\\bla.txt","rb"); fgets(buff,255,fp); directory=buff; close(fp);
Nun habe steht in 'directory' der Pfad den ich in der Datei abgelegt habe:
'directory' übergebe ich dann einer Funktion, die einen CFolderDialog öffnet, und zwar soll der Pfad, der beim Öffnen des Dialoges erscheint eben dem ausgelesenen Dateipfad entsprechen.funktion(directory,.....); ... CFolderDialog* pFolderDlg; pFolderDlg=new CFolderDialog("Select ... Folder!", directory, NULL, BIF_RETURNONLYFSDIRS); if(pFolderDlg->DoModal()==IDOK) { ...... }
Das Problem ist, dass er anscheinend den CString directory nicht erkennt und immer nur den Standartpfad C:\\ als erste Pfadangabe anzeigt. Auch Versuche die '/0' am Ende des CStrings zu entfernen oder die \\ durch \ oder / zu ersetzen schlugen fehlt. Was mache ich falsch? Hat jemand eine Ahnung?
MFG
Chris
-
Was ist CFolderDialog überhaupt? Standard-MFC Klasse ist das keine.
Also entweder übergibst du einen Pfad, den das System nicht hat und deine Klasse wechselst auf C:\, oder die CFolderDialog-Klasse hat einen Fehler.Wie sieht denn der Pfad aus, den du an die Klasse übergibst?
-
Das sieht stark nach Microsoft WTL aus.
Nach der Installation ist die Klasse in atldlgs.h zu finden
CFolderDialog(HWND hWndParent = NULL, LPCTSTR lpstrTitle = NULL, UINT uFlags = BIF_RETURNONLYFSDIRS) : CFolderDialogImpl<CFolderDialog>(hWndParent, lpstrTitle, uFlags);
Download Windows Template Library (WTL) 8.0:
http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=e5ba5ba4-6e6b-462a-b24c-61115e846f0cDer Parameter BIF_RETURNONLYFSDIRS deutet darauf hin, allerdings sehe ich keinen Parameter, der einen Startwert
annehmen könnte.Statt dessen gibt es den public Member m_lpstrInitialFolder sowie einer passenden Methode ...
LPCTSTR m_lpstrInitialFolder; void SetInitialFolder(LPCTSTR lpstrInitialFolder, bool bExpand = true);