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

猜你喜欢

转载自blog.csdn.net/u010623565/article/details/60343327