64,282
社区成员
发帖
与我相关
我的任务
分享
#include <Windows.h>
#include <iostream>
#include <shlobj.h>
using namespace std;
int main(void)
{
BROWSEINFO lpbi;
memset(&lpbi, 0, sizeof(BROWSEINFO));
TCHAR wszDir[260];
lpbi.pszDisplayName = wszDir;
lpbi.lpszTitle = _T("请选择文件夹:");
lpbi.ulFlags = BIF_NEWDIALOGSTYLE;
LPITEMIDLIST lpidl = ::SHBrowseForFolder(&lpbi);
if(lpidl)
{
if (::SHGetPathFromIDList(lpidl, wszDir))
{
cout<<wszDir<<endl;
}
}
return 0;
}
BROWSEINFO bi;
ZeroMemory(&bi,sizeof(BROWSEINFO));
LPMALLOC pMalloc;
LPITEMIDLIST pidl = SHBrowseForFolder(&bi);
TCHAR * path = new TCHAR[MAX_PATH];
if(pidl != NULL)
{
SHGetPathFromIDList(pidl,path);
MessageBox(NULL,path,TEXT("Choose"),MB_OK);
if(SUCCEEDED(SHGetMalloc(&pMalloc)))//pidl指向的对象用完应该释放,之前忽略了
{
pMalloc->Free(pidl);
pMalloc->Release();
}
}
else
{
MessageBox(NULL,TEXT("选择为空"),TEXT("Choose"),MB_OK);
}
delete path;