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

获取目录路径方法1:

  1. CString  FullPath;  
  2. BROWSEINFO bi;                        //BROWSEINFO结构体  
  3. TCHAR Buffer[512]=“”;  
  4. TCHAR FullPaths[512]=“”;  
  5. bi.hwndOwner = m_hWnd;                    //m_hWnd你的程序主窗口  
  6. bi.pidlRoot = NULL;  
  7. bi.pszDisplayName = Buffer;                //返回选择的目录名的缓冲区  
  8. bi.lpszTitle = ”请选择BMP文件”;            //弹出的窗口的文字提示  
  9. bi.ulFlags = NULL;//BIF_RETURNONLYFSDIRS|BIF_EDITBOX|BIF_BROWSEFORCOMPUTER ;    //只返回目录。其他标志看MSDN  
  10. bi.lpfn = NULL;                        //回调函数,有时很有用  
  11. bi.lParam = 0;  
  12. bi.iImage = 0;  
  13. ITEMIDLIST* pidl = ::SHBrowseForFolder (&bi);        //显示弹出窗口,ITEMIDLIST很重要  
  14. ::SHGetPathFromIDList (pidl,FullPaths);        //在ITEMIDLIST中得到目录名的整个路径  
  15. if(FullPaths[0]!=NULL)  
  16. {  
  17.     m_filepath=FullPaths;  
  18.     UpdateData(FALSE);  
  19. }  
  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:

  1. TCHAR   szPath[MAX_PATH]={0};  
  2. LPITEMIDLIST   pitem;  
  3. BROWSEINFO   info;  
  4. ::ZeroMemory(&info,sizeof(info));  
  5. info.hwndOwner=this->m_hWnd;    
  6. info.lpszTitle=_T( ”Choose   the   Folder: ”);  
  7. info.pszDisplayName = szPath;  
  8. if(pitem=::SHBrowseForFolder(&info))  
  9. {  
  10.     ::SHGetPathFromIDList(pitem,szPath);  
  11.     m_filepath=szPath;  
  12.     UpdateData(FALSE);  
  13. }   
    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);
    } 
获取文件路径:

  1. CFileDialog dlg(TRUE);  
  2. if(dlg.DoModal()==IDOK)  
  3. {  
  4.     m_filepath=dlg.GetPathName();  
  5.     UpdateData(FALSE);  
  6. }  
    CFileDialog dlg(TRUE);
    if(dlg.DoModal()==IDOK)
    {
        m_filepath=dlg.GetPathName();
        UpdateData(FALSE);
    }



  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值