Ordner auswählen anstatt Files ?
-
Hallooooo
wenn ich einen Ordner ausählen will, wie muss ich da vorgehen? Bei Files ist es ja so, dass ich CFileDialog nehme und dann mein einzelnes File auslese.
Wie mache ich das bei Ordnern...Und weiterführend:
wenn ich den Ordner dann ausgwählt habe brauche ich ein Routine, die mir immer ein Bild ausgibt, bis der Ornder erschöpft ist....Eine große Aufgabe !
-
-
Er kennt kein CFolderDialog!
-
eswirdFrühling schrieb:
Er kennt kein CFolderDialog!
Hast du die CFolderDialog Klasse dort gedownloadet und in dein Programm hinzugefügt?
-
Nein habe ich noch nicht. Wo baue ich die denn ein?
-
So, alles so gemacht und fein eingebaut.
Allerdings kommen jetzt 2Fehler, die im FilteredFolderDlg.cpp liegen:
error C861: 'SAFE_FREE': Bezeichner wurde auch mit argumentenbezogener Suche nicht gefunden Z 29
und das Selbe nochmal für Z 62
Liegt das an mir?
Zur Kontrolle. Mein Aufruf:
CString path; CFolderDialog dlg (_T("Browse for Folder"),NULL,this); if (dlg.DoModal()==IDOK) { path = dlg.GetFolderPath(); }
-
Irgendwo scheint da ne Zeile verlorengegangen zu sein - aber Google hilft.
#define SAFE_FREE(a) {if (a) {free(a); a=NULL;}}
Ich hoffe, die gehört da auch rein, in das Projekt.
-
Also ich habe das jetzt so eingebaut, aber er wirft mir immernoch Fehler aus:
Und zwar wieder bei SAFE_FREE:
error C2664: 'free': Konvertierung des Parameters 1 von 'LPCTSTR' in 'void*' nicht möglich
Nochmal zur Bestätigung:
Ich habe deine Zeile in den FilteredFolderDialog.h eingebaut. Und zwar einfach hinter das #pragma comment also in Zeile 39
-
Hilfe!
Woran liegt das denn???
-
Uff... das liegt einfach daran das dir jemand ne "dumme" klasse empfohlen hat... nimm einfach folgenden Code... der Funktioniert ohne das du dir noch was herunterladen musst
TCHAR cPath[MAX_PATH]; BROWSEINFO bi = { NULL }; bi.lpszTitle = ("Bitte wählen Sie ein Verzeichnis aus!..."); bi.ulFlags = BIF_NEWDIALOGSTYLE; UpdateData(TRUE); LPITEMIDLIST dlg = SHBrowseForFolder( &bi ); if(dlg != NULL) { SHGetPathFromIDList (dlg, cPath); // Ab hier hat die Variable CPath den Pfad des ausgewählten Ordners inne... }
Das sollte wohl mit das einfachste sein