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中打开一个文件,如单击一个按钮,然后弹出选择文件的框框,我需要打开这个文件!