nach Pfadangabe die Dateien in einer ListBox anzeigen
-
Hi an alle,
ich habe da mal etwas, und zwar:
ich habe da eine EditBox, wo ich eine Pfadangabe mache mit z.B.:
c:\EigeneDateien\MyPicturesSo, und jetzt zu der Frage, die mir auf der zunge liegt!
Wie lasse ich mir, mittels dieser Pfadangabe, die Dateien die sich in
dem angegebenen Ordner befinden, in einer ListBox anzeigen?Danke im voraus!
-
Siehe hier
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/findfirstfile.asp
-
Einfach so:
CFileFind finder; BOOL bResult = finder.FindFirstFile("c:\EigeneDateien\MyPictures"); while(bResult) { bResult = finder.FindNextFile(); CListBox* pBox = (CListBox*) GetDlgItem(IDC_LIST); pBox->AddString(finder.GetFileName()); }
Gruß
:: NoName ::
-
Habs ausprobiert, klappt leider nicht.
Und zwar gibt er mir anstatt die Dateinamen, den Ordnernamen, den ich ausgesucht habe.
FindFirstFile kennt das VS nicht, kennt nur FindFile und FindNextFile,
mein Code sah dann so aus:CFileFind finder;
BOOL bResult = finder.FindFile(m_strPath);
while(bResult)
{
bResult = finder.FindNextFile();
CListBox* pBox = (CListBox*) GetDlgItem(IDC_LIST_FILES);
pBox->AddString(finder.GetFileName());
}Wäre schön, wenn mir noch mal jemand auf die Sprünge helfen könnte!
ThanX
-
Der einzige Peter schrieb:
Habs ausprobiert, klappt leider nicht.
Und zwar gibt er mir anstatt die Dateinamen, den Ordnernamen, den ich ausgesucht habe.
FindFirstFile kennt das VS nicht, kennt nur FindFile und FindNextFile,
mein Code sah dann so aus:CFileFind finder;
BOOL bResult = finder.FindFile(m_strPath);
CListBox* pBox = (CListBox*) GetDlgItem(IDC_LIST_FILES);
while(bResult)
{
bResult = finder.FindNextFile();
//CListBox* pBox = (CListBox*) GetDlgItem(IDC_LIST_FILES);
pBox->AddString(finder.GetFileName());
}Wäre schön, wenn mir noch mal jemand auf die Sprünge helfen könnte!
ThanX
Der Cast da in der Schleife ist aber ganz böse.
Du müsstest dir nur einmal den Pointer holen, und nicht bei jedem Schleifendurchlauf...
Mit welcher Get-Funktion du nun den Dateinamen bekommst, musst du
mal in der MSDN nachschauen, weiss ich jetzt auch nicht auswendig.zu FindFirstFile: Die Funktion ist nicht teil der Klasse CFileFind.
Devil
-
Ich habe es so umgeändert:
CFileFind finder; BOOL bResult = finder.FindFile(m_strPath); while(bResult) { bResult = finder.FindNextFile(); m_ListFiles.AddString(finder.GetFileName()); }
m_ListFiles ist meine Control von der ListBox.
Aber mit FinFirstFile komme ich immer noch nicht klar.
-
Versuchs mal so:
CFileFind finder; BOOL bResult = finder.FindFile(m_strPath); while(bResult) { bResult = finder.FindNextFile(); if(! finder.IsDots()) { if(! finder.IsDirectory()) { m_ListFiles.AddString(finder.GetFileName()); } } }
Jetzt dürfte er dir keine Ordner mehr ausgeben !
Gruß
:: NoName ::P.S. Hast du in den Pfad Joker-Zeichen '.' mit eingebaut ?
Also so: ...FindFirstFile("c:\\EigeneDateien\\MyPictures\*.*");