mfc怎么实现打开文件夹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mfc怎么实现打开文件夹相关的知识,希望对你有一定的参考价值。

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;
    
参考技术A CFileDialog::CFileDialog( BOOL bOpenFileDialog, LPCTSTR
lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD
dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR
lpszFilter = NULL, CWnd* pParentWnd = NULL );
  参数意义如下:
  bOpenFileDialog 为TRUE则显示打开对话框,为FALSE则显示保
存对话文件对话框。
  lpszDefExt 指定默认的文件扩展名。
  lpszFileName 指定默认的文件名。
  dwFlags 指明一些特定风格。
  lpszFilter 是最重要的一个参数,它指明可供选择的文件类型
和相应的扩展名。
//打开文件对话框窗口 选择所要打开的记事本文件
void CLoveDlg::OnButtonRead()


CFileDialog fileDlg(TRUE);
if(fileDlg.DoModal() == IDOK)

CString str;
CFile f;
f.Open(fileDlg.GetFileName(),CFile::modeReadWrite);
f.Read(str.GetBuffer(f.GetLength()),f.GetLength());
f.Close();
SetDlgItemText(IDC_EDIT1,str);
//或者使用此语句: GetDlgItem(IDC_EDIT1)->SetWindowText(str);



//保存记事本格式的文件
void CLoveDlg::OnButtonSave()

CString str;
CFileDialog FileDlg(FALSE,"txt","QQ网名伪原创",OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT);
FileDlg.m_ofn.lpstrInitialDir="桌面:\\";
if(FileDlg.DoModal()==IDOK)

ofstream ofs(FileDlg.GetPathName());
GetDlgItem(IDC_EDIT2)->GetWindowText(str);
/* 或者:CStatic*pst=(CStatic*)GetDlgItem(IDC_EDIT2);//第二个编辑框里的控件ID
pst->GetWindowText(str); */
ofs<<str; //输出文本到记事本里


注意:#include<fstream.h> //保存文本 函数所要的头文件.
参考技术B 使用ShellExecute来执行open操作
例如要打开D盘下的Test文件夹,如下
ShellExecute(NULL,"open","D:\\Tset",NULL,NULL,SW_SHOWNORMAL);
参考技术C 使用打开文件对话框很容易定位文件,至于获取文件后如何打开,那就要看是什么文件了。

MFC (如何通过点击botton打开一个文件夹/文件)

1.建一个MFC的工程,类型为基于对话框。在工具箱里拖进去一个button按键,如下图。

 

2.双击button1按键就可以进入到点击button1后要执行操作的代码,编写如下代码实现网页/文件夹或者文件的打开。

void CMFCApplication1Dlg::OnBnClickedButton1()
{
ShellExecute(NULL, _T("open"), _T("http://www.cnblogs.com/lize19940412/"), NULL, NULL, SW_SHOWNORMAL);// 下划线的地方可以是网址或者是文件夹的位置,亦或者是文件的路径。
}

 

 3.生成解决方案。

 

4.找到生成的exe可执行程序,就可以使用了。

 

                                 只有一条路不能选择,那就是放弃的路;只有一条路不能拒绝,那就是成长的路。

 

以上是关于mfc怎么实现打开文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何在MFC中让一个按钮实现打开文件(弹出选择文件窗口)的功能?

怎么在MFC中打开一个文件,如单击一个按钮,然后弹出选择文件的框框,我需要打开这个文件!

在 MFC C++ 中打开对话框

用mfc怎么打开excel表格

MFC怎么用CFileDialog打开一个txt文件,直接用系统自带的记事本打开就行~

MFC (如何通过点击botton打开一个文件夹/文件)