/*
explicit CFileDialog(BOOL bOpenFileDialog, // TRUE for FileOpen, FALSE for FileSaveAs
LPCTSTR lpszDefExt = NULL, 默认的文件扩展名
LPCTSTR lpszFileName = NULL, 文件名编辑框中显示的初始文件名。如果为NULL,则不显示初始文件名
DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, 文件对话框的属性,OFN_HIDEREADONLY表示隐藏文件对话框上的“Read Only”复选框,OFN_OVERWRITEPROMPT表示在保存文件对话框中如果你选择的文件存在了,就弹出一个消息对话框,要求确定是否要覆盖此文件
LPCTSTR lpszFilter = NULL, 文件过滤器,它是由若干字符串对组成的一个字符串序列。如果指定了文件过滤器,则文件对话框中只有符合过滤条件的文件显示在文件列表中待选择
CWnd* pParentWnd = NULL, 文件对话框的父窗口的指针
DWORD dwSize = 0,
BOOL bVistaStyle = TRUE);
static TCHAR BASED_CODE szFilter[] = _T("Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||");
这样设置过滤器以后,文件对话框的扩展名组合框中将有四个选项:Chart Files (*.xlc)、Worksheet Files (*.xls)、
Data Files(*.xlc;*.xls)和All Files (*.*),大家可以看到每种文件的扩展名规定都是一个字符串对,
例如Chart Files的过滤字符串是Chart Files(*.xlc)和*.xlc成对出现的,过滤字符串表,按照这个格式"标题|过滤表|标题|过滤表||
GetFileExt():获得选定文件的后缀名。
GetFileName():获得选定文件的名称,包括后缀名。
GetFileTitle():获得选定文件的标题,即不包括后缀名。
GetFolderPath():获得选定文件的目录。
GetNextPathName():获得下一个选定的文件的路径全名。
GetPathName():获得选定文件的路径全名。
GetReadOnlyPref():获得是否“以只读方式打开”。
GetStartPosition():获得文件名列表中的第一个元素的位置。
*/
CString strFilePath;
//设置文件过滤器
TCHAR szFilter[] = _T("TXT Files(*.txt)|*.txt|All files(*.*)|*.*||");
CFileDialog Dlg(TRUE, 0, 0, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szFilter, NULL);
if (Dlg.DoModal() == IDOK)
{
strFilePath = Dlg.GetPathName();
}
else
{
AfxMessageBox(_T("取消打开文件"));
return;
}
VS MFC获取文件路径
最新推荐文章于 2023-01-20 19:55:53 发布