MFC中获取文件夹路径对话框

MFC获取文件夹路径

利用SHBrowseForFolder函数获取文件夹路径

例子

CString m_strFileOut=_T(""); TCHAR servPath[MAX_PATH ]; BROWSEINFO bi; LPITEMIDLIST pidl;//文件目录转换成可读取字符串LPITEMIDLIST bi.hwndOwner =this->m_hWnd ;//获取父窗口句柄 bi.pidlRoot =NULL ;//要显示的文件夹的跟(root) bi.lpszTitle =_T("选择输出文件路径"); bi.pszDisplayName =servPath ;//保存被选取文件路径缓冲区 bi.ulFlags =BIF_RETURNFSANCESTORS ;//指定对话框的外观和功能标志 bi.lpfn =NULL ;//处理时间的回调函数 bi.lParam =NULL ;//应用程序传给毁掉函数的参数 bi.iImage =NULL ;//保存被选取文件的图片索引 if((pidl =SHBrowseForFolder (&bi))!=NULL ) { if(SUCCEEDED (SHGetPathFromIDList (pidl ,servPath )))//得到文件夹全路径 m_strFileOut =servPath ;///SHGetPathFromIDList:功能是把项目标志符列表转换为文档系统路径 }

SHGetPathFromIDList

SHGetPathFromIDList:功能是把项目标志符列表转换为文档系统路径,包含两个参数:pidl— 一张相对于namespace的根(桌面)的项目标识符表地址,用于指定一个文档或目录地点;pszPath—接收文档系统路径的缓冲地址,大小至少是MAX_PATH的字符长度

参考链接

http://www.cnblogs.com/lovelyx/p/4867134.html http://wenku.baidu.com/link?url=i5ju7gb0hWT1ESPPqlK0kWELu9WuH6vckNTegIU63vD7EXtDPQVyvIKAopOWSwSSOJaRljjmrsDRPRySmkqcmF2TClYjtAecDDRGr9bn58O http://baike.baidu.com/link?url=CN5cmH76NgZ-6qFzYUVhjuzxBwWmzxQipBoagNl6y2LaiY5LDvJeNg8o75nwCLxRkSWfH8FILgL9mXuE4Bh21l2zh3Qp8c3oQKB4dRzigay