0
点赞
收藏
分享

微信扫一扫

MFC获取文件夹路径并得到该字符串

刘员外__ 2022-11-10 阅读 153


第一种方法

代码如下

void OnBtnOpenFolder()
{
CString m_XmlFile1;
CString filter;
filter=L"文本文档(*.xml)|*.xml|所有文件(*.*)|*.*|";

/**
* @brief explicit CFileDialog(Call this function to construct a standard Windows file dialog box.)
*
* @Function CFileDialog的构造函数
*
* @param[ _In_ ] BOOL bOpenFileDialog
*
* @param[ _In_ ] LPCTSTR lpszDefExt = NULL
*
* @param[ _In_ ] LPCTSTR lpszFileName = NULL
*
* @param[ _In_ ] DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT
*
* @param[ _In_ ] LPCTSTR lpszFilter = NULL
*
* @param[ _In_ ] CWnd* pParentWnd = NULL
*
* @param[ _In_ ] DWORD dwSize = 0
*
* @param[ _In_ ] BOOL bVistaStyle = TRUE
*
* @return
*
* @Date xzm_@_2017/06/30 13:40:11
*/
CFileDialog dlg(TRUE,NULL,NULL,
// OFN_HIDEREADONLY | //打开的文件夹总,看不见已经具有只读属性的文件
OFN_FILEMUSTEXIST |
OFN_SHAREAWARE |
OFN_PATHMUSTEXIST,
filter);
if(dlg.DoModal()==IDOK)
{
m_XmlFile1 = m_strDbName = dlg.GetPathName();


UpdateData(FALSE);
}
}

CFileDialog构造函数的参数解释


explicit CFileDialog( BOOL bOpenFileDialog, LPCTSTR lpszDefExt = NULL, LPCTSTR lpszFileName = NULL, DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, LPCTSTR lpszFilter = NULL, CWnd* pParentWnd = NULL, DWORD dwSize = 0, BOOL bVistaStyle = TRUE);

参数说明

  • bOpenFileDialog 为TRUE则显示打开对话框,为FALSE则显示保存对话文件对话框。
  • lpszDefExt 指定默认的文件扩展名。
  • lpszFileName 指定默认的文件名。
  • dwFlags 指明一些特定风格。
  • lpszFilter 是最重要的一个参数,它指明可供选择的文件类型和相应的扩展名。参数格式如:

 "Chart Files (*.xlc)|*.xlc|Worksheet Files (*.xls)|*.xls|Data Files (*.xlc;*.xls)|*.xlc; *.xls|All Files (*.*)|*.*||";

文件类型说明和扩展名间用 | 分隔,同种类型文件的扩展名间可以用 ; 分割,每种文件类型间用 | 分隔,末尾用 || 指明。

dwFlags的一些说明

num

Value

Meaning

1

OFN_ALLOWMULTISELECT

0x00000200

2

OFN_CREATEPROMPT

 

3

OFN_DONTADDTORECENT

 

4

OFN_ENABLEHOOK

0x00000020

 

5

OFN_ENABLEINCLUDENOTIFY

0x00400000

 

6

OFN_ENABLESIZING

0x00800000

 

7

OFN_ENABLETEMPLATE

0x00000040

 

8

OFN_ENABLETEMPLATEHANDLE 

0x00000080

 

9

OFN_EXPLORER

0x00080000

 

10

OFN_EXTENSIONDIFFERENT

0x00000400

 

11

OFN_FILEMUSTEXIST

0x00001000

 

12

OFN_FORCESHOWHIDDEN

0x10000000

强制显示系统和隐藏文件,从而覆盖用户设置以显示或不显示隐藏文件。但是,没有显示标记为系统和隐藏的文件。

13

OFN_HIDEREADONLY

0x00000004

隐藏只读复选框

14

OFN_LONGNAMES

0x00200000

 

15

OFN_NOCHANGEDIR

0x00000008

 

16

OFN_NODEREFERENCELINKS

0x00100000

 

17

OFN_NOLONGNAMES

0x00040000

 

18

OFN_NONETWORKBUTTON

0x00020000

隐藏并禁用网络按钮。

19

OFN_NOREADONLYRETURN

0x00008000

 

20

OFN_NOTESTFILECREATE

0x00010000

 

21

OFN_NOVALIDATE

0x00000100

 

22

OFN_OVERWRITEPROMPT

0x00000002

 

23

OFN_PATHMUSTEXIST

0x00000800

 

24

OFN_READONLY

0x00000001

 

25

OFN_SHAREAWARE

0x00004000

 

26

OFN_SHOWHELP

0x00000010

 

 

 

 



举报

相关推荐

0 条评论