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

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

請問在MFC中的CFindFile有個FindNextFile(),為什么感覺有些文件沒遍歷到呢??

請問在MFC中的CFindFile有個FindNextFile(),為什么感覺有些文件沒遍歷到呢??

C
慕標5832272 2023-03-02 22:14:01
.h文件我創建5個,為什么只檢測出4個,而當.h的文件名是英文就會檢測出5個。是怎么回事findFile.FindFile(fileName "\\*.*");findFileCont.FindFile(fileName "\\*.*");//這里主要是求得要改名文件的個數while(findFileCont.FindNextFile()){if(!findFileCont.IsDirectory()){CString filePath;char Dirve[256] = "";char Dir[256] = "";char Tilte[256] = "";char Ext[256] = "";filePath = findFileCont.GetFilePath();_splitpath(filePath.GetBuffer(0), Dirve, Dir, Tilte, Ext);if(strcmp(Ext, ".h") == 0){fileNum ;}}}findFileCont.Close();
查看完整描述

2 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

CFileFind finder;
BOOL bWorking = finder.FindFile("*.*");//1
while (bWorking)
{
bWorking = finder.FindNextFile();//2
int i = m_listShowPicture.GetItemCount();//3
m_listShowPicture.InsertItem(i,"");
m_listShowPicture.SetItemText(i,0,finder.GetFileName());
}
上面程序完成文件遍歷。
finder.FindNextFile();使用n次,找到的文件就是第n個。
即如果想使用CFileFind的成員函數,必須先初始化一次。
第一次用FindNextFile();找到是第一個文件,不是第二個。
總是這樣一個過程:1:Find 2:Next 3:調用

由路徑找到文件信息
void CMPEG2EncodeDlg::AddFileLink(CString filepath)
{
SHFILEINFO fileinfo;//文件信息結構,用來獲取文件的圖標
CFileFind filefd;//文件查找類
BOOL bContinue = filefd.FindFile(filepath); //1
if(bContinue)
{
filefd.FindNextFile();//2
SHGetFileInfo( filefd.GetFilePath(),
0,
&fileinfo,sizeof(fileinfo),
SHGFI_ICON);
int i = m_imagelist.Add(fileinfo.hIcon);//取得文件圖標
m_listShowPicture.InsertItem(0,"",i);
m_listShowPicture.SetItemText(0,0,filefd.GetFileName());//3
m_listShowPicture.SetItemText(0,1,filefd.GetFilePath());
}
}


查看完整回答
反對 回復 2023-03-06
?
小怪獸愛吃肉

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

FindNextFile的返回值比較麻煩,他是剛剛好遍歷到最后一個文件的時候,給你返回false,也就意味著最后一個文件還沒處理就退出while了。
所以得寫成這樣:
BOOL bRes = ff.FindFile(.....);
while(bRes) 
{
bRes = ff.FindNextFile();// 遍歷到最后一個文件的時候,bRes變成false。下面先處理了這個文件,之后才退出循環。
if (!ff.IsDirectory())
{...}
}

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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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