//将选择的文件夹路径保存在此变量中
CString m_FileSrc;
TCHAR Buffer[MAX_PATH];
BROWSEINFO bi;
ZeroMemory(&bi, sizeof(BROWSEINFO));
bi.hwndOwner = NULL;
bi.ulFlags = BIF_RETURNONLYFSDIRS; //要求返回文件系统的目录
bi.pszDisplayName = Buffer; //此参数如为NULL则不能显示对话框
bi.lpszTitle = _T("请选择文件夹");
bi.lpfn = NULL;
bi.iImage=IDR_MAINFRAME;
LPITEMIDLIST pIDList = SHBrowseForFolder(&bi);//调用显示选择对话框
if(pIDList)
{
SHGetPathFromIDList(pIDList, Buffer);
//取得文件夹路径到Buffer里
m_FileSrc = Buffer;//将文件夹路径保存在一个CString对象里
}
LPMALLOC lpMalloc;
if(FAILED(SHGetMalloc(&lpMalloc)))
return;
//释放内存
lpMalloc->Free(pIDList);
lpMalloc->Release();
//逐个列举文件夹内所有txt文件
CString strFileName, strFileTemp, strSuffixTemp;
CFileFind findFile;
if(m_FileSrc.Right(1)!='\\')
strFileTemp = m_FileSrc += '\\';
else
{
m_FileSrc.Right(1) = '\\';
strFileTemp = m_FileSrc;
}
strFileTemp += "*.*";
int nIsFind=findFile.FindFile(strFileTemp); //执行文件搜索
while(nIsFind)
{
nIsFind = findFile.FindNextFile(); //查找下一个文件
if(findFile.IsDirectory()) //若为目录,结束本次循环
continue;
strFileName =findFile.GetFileName(); //获取文件名称,包括后缀
if(strFileName==".." || strFileName==".")
continue;
strSuffixTemp = strFileName.Mid(strFileName.GetLength()-3,3);
//筛选txt文本文件来处理
if(strSuffixTemp != "txt" && strSuffixTemp != "TXT")
continue;
strFileName = m_FileSrc + strFileName;
//对文件进行后续处理
}
MFC:选择文件夹,并列举文件夹中的内容,进行处理
最新推荐文章于 2024-11-25 12:12:10 发布