【问题标题】:Get folder directory via file explorer通过文件资源管理器获取文件夹目录
【发布时间】:2018-01-11 19:09:23
【问题描述】:

我正在开发一个基本的 3D 可视化器项目,但遇到了障碍。

该应用程序为您提供了创建新项目的选项。我需要的是打开 Windows 文件资源管理器让用户选择一个目录来设置项目。

目前我用这个

const int BUFSIZE = 1024;
char buffer[BUFSIZE] = { 0 };
OPENFILENAME ofns = { 0 };
ofns.lStructSize = sizeof(ofns);
ofns.lpstrFile = buffer;
ofns.nMaxFile = BUFSIZE;
ofns.lpstrTitle = "Select Directory";
GetOpenFileName(&ofns);
std::string directory = buffer;

但这会迫使您选择一个文件,这意味着它不能是一个空文件夹(它必须是)。

使用c++通过文件资源管理器获取空文件夹的目录需要什么?

谢谢!

【问题讨论】:

    标签: c++ windows directory


    【解决方案1】:

    您可以使用 IFileSaveDialog 来呈现一个仅为目录的界面。

    创建一个获取 IFileSaveDialog 接口的 CLSID_FileSaveDialog 然后使用 SetOptions 调用至少指定 FOS_PICKFOLDERS

    【讨论】:

    • 很抱歉让我很痛苦,但我花了一些时间浏览文档,这让我很困惑!我知道我需要这样做: IFileSaveDialog* pFileOpen; HRESULT hr = CoCreateInstance(CLSID_FileSaveDialog, NULL, CLSCTX_ALL, IID_IFileSaveDialog, reinterpret_cast (&pFileOpen));然后使用 pFileOpen->SetOptions(FOS_PICKFOLDERS);但至于让窗户打开我不知道! :(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-30
    • 1970-01-01
    • 2012-09-08
    • 1970-01-01
    • 2011-09-14
    • 2015-11-29
    相关资源
    最近更新 更多