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);  
        }  
    }
  • 相关阅读:
    提取汉字首字母助手类:
    ComboBox1获取datatable的一列
    C++容器
    字符串反转
    什么是C++标准库
    如何在程序中使用系统调用
    秒针、分针和时针的重合次数(十二小时)
    查找单向链表倒数第n个元素
    Ubuntu下查看计算机信息
    实验三:给系统添加一个新的系统调用
  • 原文地址:https://www.cnblogs.com/Johnny-z6951/p/15347586.html
Copyright © 2011-2022 走看看