MFC点击按钮打开对话框选择文件夹(不是文件)

我想取得一个文件夹下所有的.mdb文件,取出一个我知道用CFileDialog。我的意思是弹出对话框后,我只能选择文件夹,然后得到在这个文件夹下面所有的.mdb的总路径放... 我想取得一个文件夹下所有的.mdb文件,取出一个我知道用CFileDialog。我的意思是弹出对话框后,我只能选择文件夹,然后得到在这个文件夹下面所有的.mdb的总路径放入一个数组中。求大神们帮忙 展开
 我来答
bhtzu
推荐于2016-03-13 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:3902万
展开全部
选择所选择的文件夹,获取文件夹的路径:
CString m_FileDir;
BROWSEINFO bi;
ZeroMemory(&bi, sizeof(BROWSEINFO));
bi.hwndOwner = m_hWnd;
bi.ulFlags = BIF_RETURNONLYFSDIRS;
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
BOOL bRet = FALSE;
TCHAR szFolder[MAX_PATH*2];
szFolder[0] = _T('\0');
if (pidl)
{
if (SHGetPathFromIDList(pidl, szFolder))
bRet = TRUE;
IMalloc *pMalloc = NULL;
if (SUCCEEDED(SHGetMalloc(&pMalloc))
&& pMalloc)
{
pMalloc->Free(pidl);
pMalloc->Release();
}
}
m_FileDir = szFolder;//选择的文件夹路径

查找所有MDB文件(记录数组自己写吧)
CFileFind ff;
BOOL res = ff.FindFile(m_FileDir+"*.mdb");
while(res)
{
res = ff.FindNextFile();
//不遍历子目录
if(!ff.IsDirectory() && !ff.IsDots())
{
CString strFile = ff.GetFileName();

…// 在这里写需要的代码
}
}
ff.Close(); // 不要忘记关闭
zfz0701
2013-05-24
知道答主
回答量:7
采纳率:0%
帮助的人:3.3万
展开全部
对打开的文件夹进行搜索就可以了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式