选择文件夹与文件

void CFileCleanerDlg::OnBnClickedButton2()
{

    //打开文件夹
    static TCHAR strDirName[MAX_PATH];

    BROWSEINFO bi;

    CString szString = TEXT("选择一个源文件子文件夹");

    bi.hwndOwner = ::GetFocus();

    bi.pidlRoot = NULL;

    bi.pszDisplayName = strDirName;

    bi.lpszTitle = szString;

    bi.ulFlags = BIF_BROWSEFORCOMPUTER | BIF_DONTGOBELOWDOMAIN | BIF_RETURNONLYFSDIRS;

    bi.lpfn = NULL;

    bi.lParam = 0;

    bi.iImage = 0;



    LPITEMIDLIST pItemIDList = ::SHBrowseForFolder(&bi);

    if (pItemIDList == NULL)

    {

        return;

    }



    ::SHGetPathFromIDList(pItemIDList, strDirName);



    CString str = strDirName;

////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//打开文件


    ////1.字符串数组,用来保存对话框选择的文件路径,一般声明为成员变量
    //TCHAR m_szFilePath[MAX_PATH] = {};
    ////2.0获取桌面路径(对话框打开后的默认初始路径,可写可不写)
    //TCHAR szDir[MAX_PATH] = { 0 };
    ////2.1 CSIDL_DESKTOP代表桌面,想获得其余默认路径的值查找MSDN
    ////CSIDL_DESKTOP 所代表的参数值不同,默认文件路径不同
    //SHGetSpecialFolderPath(NULL, szDir, CSIDL_DESKTOP, NULL);

    ////打开选择文件对话框API:GetOPenFIleName(OPENFILENAME ofn)
    ////这些都是参数,给OPENFILENAME结构体赋值
    //OPENFILENAME ofn = { sizeof(OPENFILENAME) };
    //TCHAR szFileName[MAX_PATH] = { 0 };
    //ofn.Flags = OFN_HIDEREADONLY;
    //ofn.hwndOwner = NULL;
    ////这个是文件过滤,显示扩展名为什么的文件
    ////需要添加过滤条件的按套路添加
    //TCHAR szFilter[] = TEXT("EXE Files(*.exe)*.exe")
    //                   TEXT("DLL File(*.dll) * .dll")
    //                   TEXT("ALL Files(*.*) * .*");
    //ofn.lpstrFilter = szFilter;
    //ofn.nMaxFile = MAX_PATH;
    //ofn.nMaxFileTitle = MAX_PATH;
    ////上边都是套路,下面这三个根据选择设置为临时变量或成员变量
    //ofn.lpstrFile = m_szFilePath;//文件名:1.text
    //ofn.lpstrFileTitle = szFileName;//全路径: D:1231.txt
    //ofn.lpstrInitialDir = szDir;//文件所在路径; D:123
    ////上面都是为这个API服务的
    //if (!GetOpenFileName(&ofn))
    ////    return;
    /*m_pathValue = m_szFilePath;*/
    m_pathValue = str;
    UpdateData(FALSE);
}
让数据变得更安全!
原文地址:https://www.cnblogs.com/Alyoyojie/p/5286442.html