如下所示,怎么能让查找的结果没有这俩呢?

CString temppath="C:\\window"+CString("\\*");
是查找window下所有的文件
但出来的结果总有C:\window\. 和C:\window\..

这样做是想递归遍历window下所以的文件(包括子文件夹的文件)
如果不这样做有好的方法也行...

UYOU
浏览 134回答 2
2回答

小怪兽爱吃肉

下面代码是自己改写的,通过测试,好用:void CTestDlg::OnSelectFolder() {UpdateData(TRUE);char szDir[MAX_PATH];BROWSEINFO bi;ITEMIDLIST *pidl;bi.hwndOwner = this->m_hWnd; // 指定父窗口,在对话框显示期间,父窗口将被禁用 bi.pidlRoot = NULL; // 如果指定NULL,就以"桌面"为根 bi.pszDisplayName = szDir;bi.lpszTitle = "请选择目录"; // 这一行将显示在对话框的顶端  bi.ulFlags = BIF_STATUSTEXT|BIF_RETURNONLYFSDIRS;bi.lpfn = NULL;bi.lParam = 0;bi.iImage = 0;pidl = SHBrowseForFolder(&bi);if(pidl == NULL) return;if(!SHGetPathFromIDList(pidl, szDir)) return;else m_strPath = szDir;UpdateData(FALSE);FindFiles(m_strPath);}//Visit the files of the folder selected.void CTestDlg::FindFiles(CString filePath){CString fileName="";CString result="";filePath+= _T("\\*.*");CFileFind finder;BOOL bFind=FALSE;bFind=finder.FindFile(filePath);while(bFind){bFind=finder.FindNextFile();if (finder.IsDots()){continue;}else{fileName=finder.GetFilePath();result+=fileName+"\n";}}finder.Close();MessageBox(result,"结果显示");} 

largeQ

CString temppath="C:\\window"+CString("\\*.*");应该是这样的C:\window\. 和C:\window\..这两个是会出来的,你个代表上级目录,一个子目录
打开App,查看更多内容
随时随地看视频慕课网APP