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

2024-12-01 09:31:36
推荐回答(2个)
回答(1):

选择所选择的文件夹,获取文件夹的路径:
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(); // 不要忘记关闭

回答(2):

对打开的文件夹进行搜索就可以了