亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如下所示,怎么能讓查找的結果沒有這倆呢?

如下所示,怎么能讓查找的結果沒有這倆呢?

C
UYOU 2023-03-03 18:13:16
CString temppath="C:\\window"+CString("\\*");是查找window下所有的文件但出來的結果總有C:\window\. 和C:\window\..這樣做是想遞歸遍歷window下所以的文件(包括子文件夾的文件)如果不這樣做有好的方法也行...
查看完整描述

2 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

下面代碼是自己改寫的,通過測試,好用:

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,"結果顯示");

}

 


查看完整回答
反對 回復 2023-03-06
?
largeQ

TA貢獻2039條經驗 獲得超8個贊

CString temppath="C:\\window"+CString("\\*.*");應該是這樣的
C:\window\. 和C:\window\..
這兩個是會出來的,你個代表上級目錄,一個子目錄

查看完整回答
反對 回復 2023-03-06
  • 2 回答
  • 0 關注
  • 123 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號