mfc怎么实现打开文件夹
4个回答
展开全部
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;
}
}
展开全部
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> //保存文本 函数所要的头文件.
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> //保存文本 函数所要的头文件.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用ShellExecute来执行open操作
例如要打开D盘下的Test文件夹,如下
ShellExecute(NULL,"open","D:\\Tset",NULL,NULL,SW_SHOWNORMAL);
例如要打开D盘下的Test文件夹,如下
ShellExecute(NULL,"open","D:\\Tset",NULL,NULL,SW_SHOWNORMAL);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用打开文件对话框很容易定位文件,至于获取文件后如何打开,那就要看是什么文件了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询