怎么用CFileDialog 选择文件夹

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用CFileDialog 选择文件夹相关的知识,希望对你有一定的参考价值。

参考技术A CString
BrowseFolder(HWND
hWnd,
LPCTSTR
lpTitle)

char
szPath[MAX_PATH]=0;
BROWSEINFO
m_bi;
m_bi.ulFlags
=
BIF_RETURNONLYFSDIRS
|
BIF_STATUSTEXT;
m_bi.hwndOwner
=
hWnd;
m_bi.pidlRoot
=
NULL;
m_bi.lpszTitle
=
lpTitle;
m_bi.lpfn
=
NULL;
m_bi.lParam
=
NULL;
m_bi.pszDisplayName
=
szPath;
LPITEMIDLIST
pidl
=
::SHBrowseForFolder(
&m_bi
);
if
(
pidl
)

if(
!::SHGetPathFromIDList
(
pidl,
szPath
)
)
szPath[0]=0;
IMalloc
*
pMalloc
=
NULL;
if
(
SUCCEEDED
(
::SHGetMalloc(
&pMalloc
)
)
)
//
取得IMalloc分配器接口

pMalloc->Free(
pidl
);
//
释放内存
pMalloc->Release();
//
释放接口


return
szPath;

=============================================================
调用
void
CFlorderDlg::OnButton1()

//
TODO:
Add
your
control
notification
handler
code
here
CString
SelectPath=BrowseFolder(this->m_hWnd,"选择目录");
AfxMessageBox(SelectPath);

用户在磁盘上寻找文件时,所历经的文件夹线路叫路径。路径分为绝对路径和相对路径。
1】绝对路径:从根文件夹开始的路径,以“\”作为开始。
2】相对路径:从当前文件夹开始的路径。
DOS程序命令中:d代表盘符
p代表路径
0(零)代表文件本身,%~dp0就是文件所在的完整路径
Windows应用中文件夹路径就是当打开文件夹时地址栏显示的信息,如
H:\Downloads\Game代表的就是Game文件夹的完整路径

以上是关于怎么用CFileDialog 选择文件夹的主要内容,如果未能解决你的问题,请参考以下文章

如何让CFileDialog同时选择文件和文件夹

VC6.0中CFileDialog怎么选择多个文件?

MFC中CFileDialog使用方法

使用 CFileDialog 选择文件时的绘画问题

如何在 MFC 中使用 CfileDialog 选择特定文件

MFC CFileDialog 只打开选择文件