CFileFind ließt Ordnernamen mit Punkten nicht korrekt aus
-
Moin beisammen
Ich habe folgendes Problem:
Ich durchsuche mit der untenstehenden Funktion einen Ordner und alle seine Unterordner auf MP3-Dateien und fülle damit dann ein Treeview-Element.
Das Problem ist folgendes: Habe ich einen Ordnernamen der Punkte enthält (z.B. ../2007 - Strange Rumours ... Distant Tremors/..) dann gibt oFileFinder.GetFileTitle() bzw. oFileFinder.GetFilePath() nur 2007 - Strange Rumours .. zurück.
Wie kann ich dieses ärgerliche Problem lösen?
Hier noch der Code und danke schonmal für die Hilfe!!!
void CMainDlg::initTree(CString &roPath) throw() { CFileFind oFileFinder; CString oSearchString; HTREEITEM hTreeItem; BOOL bFoundFile; CStringArray aoFolder; CArray<HTREEITEM, HTREEITEM> aoTreeItem; aoFolder.Add(roPath); aoTreeItem.Add(m_poTree->InsertItem(aoFolder.GetAt(0))); // Solange noch Order uebrig sind while(aoFolder.GetCount() > 0) { // Suchstring basteln und suchen oSearchString = aoFolder.GetAt(0); oSearchString += _T("\\*.*"); bFoundFile = oFileFinder.FindFile(oSearchString); hTreeItem = aoTreeItem.GetAt(0); // Solange noch was gefunden wird... while(bFoundFile) { // Naechste Datei suchen bFoundFile = oFileFinder.FindNextFile(); // Ordner... if(oFileFinder.IsDirectory()) { if(!oFileFinder.IsDots()) { aoFolder.Add(oFileFinder.GetFilePath()); aoTreeItem.Add(m_poTree->InsertItem(oFileFinder.GetFileTitle(), hTreeItem)); }; } // ...oder Datei? else if(isMP3(oFileFinder.GetFileName())) { m_poTree->InsertItem(oFileFinder.GetFileName(), hTreeItem); }; }; aoFolder.RemoveAt(0); aoTreeItem.RemoveAt(0); }; };Greetz, Kane