zoukankan      html  css  js  c++  java
  • MFC获取文件路径和文件夹路径

    MFC的界面中,需要实现这样两个功能:

    1、在界面上加一个按钮,单击按钮弹出一个对话框选择文件,在工程中获得文件的路径;

    2、在界面上加一个按钮,单击按钮弹出一个对话框选择文件夹,在工程中获取文件夹的路径。

    一、获取文件路径

     1 // -- 按钮的消息响应函数
     2 void CDialogSampled::OnBnClickedButtonOpen()
     3 {
     4     // TODO: 在此添加控件通知处理程序代码
     5     CString m_strFilePath = _T("");
     6 
     7     //获取文件路径名
     8     LPCTSTR szFilter =_T("TXT(*.txt)|*.txt|LOG(*.log)|*.log|ALLSUPORTFILE(*.*)|*.*||");
     9     CFileDialog dlgFileOpenImg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,szFilter,NULL);
    10     //打开txt文件
    11     if(dlgFileOpenImg.DoModal() == IDOK)
    12     {       
    13         //读取文件名
    14         m_strFilePath = dlgFileOpenImg.GetPathName();
    15     }
    16     else
    17     {
    18         return;
    19     }
    20 }

    二、获取文件夹路径

    //选择保存路径
    void CDialogSampled::OnBnClickedButtonSavePathSelect()
    {
        // TODO: 在此添加控件通知处理程序代码
        CString m_saveFilePath;
        //打开文件,获取文件路径名
        TCHAR szPath[_MAX_PATH];  
        BROWSEINFO bi;  
        bi.hwndOwner = GetSafeHwnd();  
        bi.pidlRoot = NULL;  
        bi.lpszTitle = "Please select the input path";  
        bi.pszDisplayName = szPath;  
        bi.ulFlags = BIF_RETURNONLYFSDIRS;  
        bi.lpfn = NULL;  
        bi.lParam = NULL;  
    
        LPITEMIDLIST pItemIDList = SHBrowseForFolder(&bi);  
    
        if(pItemIDList)  
        {  
            if(SHGetPathFromIDList(pItemIDList,szPath))  
            {  
                m_saveFilePath = szPath;  
                m_saveFilePath = m_saveFilePath+"\";
            }  
    
            //use IMalloc interface for avoiding memory leak  
            IMalloc* pMalloc;  
            if( SHGetMalloc(&pMalloc) != NOERROR )  
            {  
                TRACE(_T("Can't get the IMalloc interface
    "));  
            }  
    
            pMalloc->Free(pItemIDList);  
            if(pMalloc)  
                pMalloc->Release();  
            UpdateData(FALSE);  
        }  
    }
  • 相关阅读:
    叨叨叨
    四舍五入VS银行家舍入
    是雏还是鹰——编程规范之变量命名
    .Net下二进制形式的文件(图片)的存储与读取(原创)
    asp.net中<%%>形式的用法(原创)
    让Hashtable支持自定义排序(原创)
    .NET下的迭代器(Iterator)模式
    本地视频播放-ios
    cocos2dx srand(time(NULL))重新设置一个随机种子
    cocos2dx 游戏重置方法
  • 原文地址:https://www.cnblogs.com/Johnny-z6951/p/15347586.html
Copyright © 2011-2022 走看看