MFC获取打开目录路径和获取文件路径

2025-10-15 06:51:59

1、获取目录路径方法1:

[cpp] view plain copy

CString  FullPath;  

BROWSEINFO bi;                        //BROWSEINFO结构体  

TCHAR Buffer[512]="";  

TCHAR FullPaths[512]="";  

bi.hwndOwner = m_hWnd;                    //m_hWnd你的程序主窗口  

bi.pidlRoot = NULL;  

bi.pszDisplayName = Buffer;                //返回选择的目录名的缓冲区  

bi.lpszTitle = "请选择BMP文件";            //弹出的窗口的文字提示  

bi.ulFlags = NULL;//BIF_RETURNONLYFSDIRS|BIF_EDITBOX|BIF_BROWSEFORCOMPUTER ;    //只返回目录。其他标志看MSDN  

bi.lpfn = NULL;                        //回调函数,有时很有用  

bi.lParam = 0;  

bi.iImage = 0;  

ITEMIDLIST* pidl = ::SHBrowseForFolder (&bi);        //显示弹出窗口,ITEMIDLIST很重要  

::SHGetPathFromIDList (pidl,FullPaths);        //在ITEMIDLIST中得到目录名的整个路径  

if(FullPaths[0]!=NULL)  

{  

    m_filepath=FullPaths;  

    UpdateData(FALSE);  

}  

2、获取目录路径方法2:

[cpp] view plain copy

TCHAR   szPath[MAX_PATH]={0};  

LPITEMIDLIST   pitem;  

BROWSEINFO   info;  

::ZeroMemory(&info,sizeof(info));  

info.hwndOwner=this->m_hWnd;    

info.lpszTitle=_T( "Choose   the   Folder: ");  

info.pszDisplayName = szPath;  

if(pitem=::SHBrowseForFolder(&info))  

{  

    ::SHGetPathFromIDList(pitem,szPath);  

    m_filepath=szPath;  

    UpdateData(FALSE);  

}   

3、获取文件路径:

[cpp] view plain copy

CFileDialog dlg(TRUE);  

if(dlg.DoModal()==IDOK)  

{  

    m_filepath=dlg.GetPathName();  

    UpdateData(FALSE);  

}  

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢