如何取得文件夹的路径?
我想在程序中弹出一个CFileDialog对话框,而可以选取一个文件夹
并可以得到他的路径?
大家有什么办法吗?只要可以选取一个文件夹,并可取路径即可!
先谢了!
问题点数:40、回复次数:2Top
1 楼MilitaryMiniatures(++)回复于 2003-11-02 17:45:09 得分 30
如果只是选择一个目录,建议使用SHBrowseForFolder这个Shell函数。
void OnButtonMerdesfile()
{
// TODO: Add your control notification handler code here
LPMALLOC g_pMalloc;
if (!SUCCEEDED(SHGetMalloc(&g_pMalloc))) return;
BROWSEINFO bi;
LPTSTR lpBuffer;
LPITEMIDLIST pidlRoot;
LPITEMIDLIST pidlBrowse;
if ((lpBuffer = (LPTSTR)g_pMalloc->Alloc(MAX_PATH)) == NULL)
return;
if (!SUCCEEDED(SHGetSpecialFolderLocation(m_hWnd, CSIDL_DESKTOP, &pidlRoot)))
{
g_pMalloc->Free(lpBuffer);
return;
}
bi.hwndOwner = m_hWnd;
bi.pidlRoot = pidlRoot;
bi.pszDisplayName = lpBuffer;
bi.lpszTitle = _T("选择文件夹");
bi.ulFlags = BIF_RETURNONLYFSDIRS;
bi.lpfn = NULL;
bi.lParam = 0;
pidlBrowse = SHBrowseForFolder(&bi);
if (pidlBrowse != NULL)
{
if (SHGetPathFromIDList(pidlBrowse, lpBuffer))
{
//这就是你要得到的返回的目标路径
m_merdesfile=(CString)lpBuffer;
}
g_pMalloc->Free(pidlBrowse);
}
g_pMalloc->Free(pidlRoot);
g_pMalloc->Free(lpBuffer);
g_pMalloc->Release();
}Top
2 楼vcforever(累)回复于 2003-11-02 22:20:04 得分 10
呵呵……来晚了!
祝楼住早日解决问题吧!Top




