c++打开文件夹对话框GetOpenFileName 获取打开文件的filename(String类型)、使用Qt中QFileDialog打开、MFC中CFileDialog打开文件
2020-02-05 15:46
495 查看
使用GetOpenFileName 获取打开文件
#include <Windows.h>
string TCHAR2STRING(TCHAR* str) { // Function: TCHAR2STRING // Description : TCHAR转string // Input : str:待转化的TCHAR* 类型字符串 // Return : 转化后的string类型字符串 std::string strstr; try { int iLen = WideCharToMultiByte(CP_ACP, 0, str, -1, NULL, 0, NULL, NULL); char* chRtn = new char[iLen * sizeof(char)]; WideCharToMultiByte(CP_ACP, 0, str, -1, chRtn, iLen, NULL, NULL); strstr = chRtn; } catch (exception e) { } return strstr; }
String filename; OPENFILENAME ofn = { 0 }; TCHAR strFileName[MAX_PATH] = { 0 }; //用于接收文件名 ofn.lStructSize = sizeof(OPENFILENAME); //结构体大小 ofn.hwndOwner = NULL; //拥有着窗口句柄 ofn.lpstrFilter = TEXT("All\0*.*\0jpg\0*.jpg\0bmp\0*.bmp\0\0"); //设置过滤 ofn.nFilterIndex = 1; //过滤器索引 ofn.lpstrFile = strFileName; //接收返回的文件名,注意第一个字符需要为NULL ofn.nMaxFile = sizeof(strFileName); //缓冲区长度 ofn.lpstrInitialDir = NULL; //初始目录为默认 ofn.lpstrTitle = TEXT("打开"); //窗口标题 ofn.Flags = OFN_FILEMUSTEXIST | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY; //文件、目录必须存在,隐藏只读选项 //打开文件对话框 if (GetOpenFileName(&ofn)) { cout<<"打开成功"<<endl; filename = TCHAR2STRING(strFileName);//char转String cout << filename << endl; } else { MessageBox(NULL, TEXT("请选择一文件"), NULL, MB_ICONERROR); }
Qt中QFileDialog打开,添加#include < QFileDialog>
QString filename = QFileDialog::getOpenFileName(this,tr("OpenImage"),".",tr("Image File(*.all *.png *.jpg *.bmp)")); String filenm = String((const char *)filename.toLocal8Bit());//QString转String
MFC中打开、保存文件
void COpenSaveFileDialogDlg::OnBnClickedButtonOpen() { BOOL isOpen = TRUE; //是否打开(否则为保存) CString defaultDir = L"E:\\FileTest"; //默认打开的文件路径 CString fileName = L""; //默认打开的文件名 CString filter = L"文件 (*.doc; *.ppt; *.xls)|*.doc;*.ppt;*.xls||"; //文件过虑的类型 CFileDialog openFileDlg(isOpen, defaultDir, fileName, OFN_HIDEREADONLY | OFN_READONLY, filter, NULL); openFileDlg.GetOFN().lpstrInitialDir = L"E:\\FileTest\\test.doc"; INT_PTR result = openFileDlg.DoModal(); CString filePath = defaultDir + "\\test.doc"; if (result = = IDOK) { filePath = openFileDlg.GetPathName(); } CWnd::SetDlgItemTextW(IDC_EDIT_SRC, filePath); } //保存文件 void COpenSaveFileDialogDlg::OnBnClickedButtonSave() { BOOL isOpen = FALSE; //是否打开(否则为保存) CString defaultDir = L"E:\\FileTest"; //默认打开的文件路径 CString fileName = L"test.doc"; //默认打开的文件名 CString filter = L"文件 (*.doc; *.ppt; *.xls)|*.doc;*.ppt;*.xls||"; //文件过虑的类型 CFileDialog openFileDlg(isOpen, defaultDir, fileName, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, filter, NULL); openFileDlg.GetOFN().lpstrInitialDir = L"E:\\FileTest\\test.doc"; INT_PTR result = openFileDlg.DoModal(); CString filePath = defaultDir + "\\" + fileName; if (result = = IDOK) { filePath = openFileDlg.GetPathName(); } CWnd::SetDlgItemTextW(IDC_EDIT_DEST, filePath); }
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 打开文件对话框和文件夹对话框之MFC和API实现
- MFC 打开保存对话框 获取保存文件路径 {无错版} vs 2010
- qt iOS app 如何获取共享文件夹文件,如何使用document文档目录文件
- MFC实现打开、保存文件对话框和浏览文件夹对话框
- C#项目打开/保存文件夹/指定类型文件,获取路径
- MFC学习(20)MFC打开/保存文件对话框——CFileDialog之一
- MFC打开/保存文件对话框:CFileDialog
- C++学习之:打开文件对话框和打开文件夹对话框
- 获取文件大小的六种方法大全,打开文件和不打开文件都有,C方法获取,C++方法获取,MFC方法获取。
- MFC打开/保存文件对话框:CFileDialog
- 使用mfc打开文件对话框
- MFC中CFileDialog打开和保存文件对话框(转)
- MFC打开/保存文件对话框:CFileDialog
- CfileDialog 文件对话框 mfc打开并读取txt文件
- MFC获取电脑文件夹下文件的名称,类型,大小,后缀(附源码)
- MFC打开/保存文件对话框:CFileDialog
- MFC打开/保存文件对话框:CFileDialog
- C# 打开以对话框,获取文件夹路径 、文件的路径、文件名
- MFC打开/保存文件对话框:CFileDialog
- MFC 利用打开对话框读取文件夹下所有文件