mfc怎么实现打开文件夹

mfc怎么实现打开文件夹,第1张

void CXXXDlg::OpenFolder()

{

    BROWSEINFO bi

    ZeroMemory(&bi,sizeof(BROWSEINFO))

    //添加提示语句

    bi.lpszTitle= _T("请选择文件夹")

    //添加"新建文件夹项"和"编辑框"

    bi.ulFlags = BIF_NEWDIALOGSTYLE | BIF_EDITBOX

    // 显示一个对话框让让用户选择文件夹

    LPITEMIDLIST pidl = SHBrowseForFolder(&bi)

    char szFolder[_MAX_PATH]

    memset(szFolder, 0, sizeof(szFolder))

    CString strFolder = _T("")

    if (pidl != NULL)

    {

        SHGetPathFromIDList(pidl, szFolder)

        //保存文件夹路径

        strFolder.Format(_T("%s"), szFolder)

        afxMessageBox(strFolder)

    }

    else

    {

        return

    }

}

void CXXXDlg::OpenFolder(){BROWSEINFO bi ZeroMemory(&bi,sizeof(BROWSEINFO)) //添加提示语句bi.lpszTitle= _T("请选择文件夹") //添加"新建文件夹项"和"编辑框"bi.ulFlags = BIF_NEWDIALOGSTYLE | BIF_EDITBOX // 显示一个对话框让让用户选择文件夹LPITEMIDLIST pidl = SHBrowseForFolder(&bi) char szFolder[_MAX_PATH] memset(szFolder, 0, sizeof(szFolder)) CString strFolder = _T("") if (pidl != NULL){SHGetPathFromIDList(pidl, szFolder) //保存文件夹路径存strFolder.Format(_T("%s"), szFolder) afxMessageBox(strFolder) }else{return }}

把"通过选择得到一个文件/文件夹的路径" 这些代码实现 写到某个函数里,不是写到按钮实现的函数里就行了。例如:

【以下代码中 filePathFile就是你想要的路径】

在主体函数中:

CFileDialog *lpszOpenFile //定义一个CfileDialog对象

//生成一个对话框

lpszOpenFile = new CFileDialog

(TRUE,"abc.txt","",OFN_FILEMUSTEXIST |OFN_HIDEREADONLY , "文件类型(*.txt)|*.txt|所有文件(*.*)|*.*|")

if(lpszOpenFile->DoModal() == IDOK )//假如点击对话框确定按钮

{

filePathName = lpszOpenFile->GetPathName()//得到打开文件的路径

}

if(!file.Open(filePathName,CFile::modeRead))

{

MessageBox("can not open file!")

return

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/12002867.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存