在VC++中使用GetOpenFileName() API打开文件夹而不是文件

Usage of GetOpenFileName() API in VC++ for opening a folder & NOT a file

本文关键字:文件夹 文件 API VC++ GetOpenFileName      更新时间:2023-10-16

BOOL WINAPI GetOpenFileName( LPOPENFILENAME lpofn );

用于在VC++程序中打开文件,例如

C:\Hello\World\abc.txt

.但是我想使用此功能选择一个文件夹

C:\你好\世界 在其中安装一个文件。

我想我需要对结构"OPENFILENAME"的成员进行一些更改。任何人都可以知道如何在VC ++程序中实现这一目标。提前谢谢。

GetOpenFileName根本不

支持文件夹选择。

您的选择是:

  • SHBrowseForFolder在Windows 2000及更高版本上可用,但看起来有点丑。
  • IFileDialog 哪个是平台本机文件夹选择器,但仅在 Vista 或更高版本上可用。若要使对话框充当文件夹选取器,请将FOS_PICKFOLDERS传递给SetOptions

在我看来,用户的最佳结果是在可用的情况下使用IFileDialog,但回退到旧操作系统的SHBrowseForFolder

有ShBrowseForFolder。 如果你搜索,周围有很多C++的例子。