4

我正在尝试创建一个对话框来选择一个新文件夹来保存文件。IFileOpenDialog类效果很好,只是它不允许选择新文件夹。

即对话框底部的“文件夹:C:\existings\new-folder”弹出以下消息:

新文件夹
路径不存在。
检查路径并重试。

这是我得到的代码:

IFileDialog* fileDialog
CoCreateInstance(CLSID_FileOpenDialog, NULL, CLSCTX_INPROC_SERVER, 
    IID_PPV_ARGS(&fileDialog));

DWORD options;
fileDialog->GetOptions(&options);

options &= ~FOS_FILEMUSTEXIST;  
options &= ~FOS_PATHMUSTEXIST;
fileDialog->SetOptions(options | FOS_PICKFOLDERS);

fileDialog->Show(parentWindow);

任何指针或黑客将不胜感激!谢谢!


另一个问题中引用迈克尔:

[为了避免一些评论,SHBrowseForFolder API 仍然存在,但对于我们的 UI 决策者来说仍然不是一个可接受的解决方案。]

这同样适用于这里......

4

2 回答 2

1

当您选择一个文件夹时,您可以使用文件夹选择器对话框。这带有正确的标志,底部有一个“创建”按钮和一个文本条目,允许您指定不存在的路径。

于 2011-12-01T09:22:30.433 回答
1

我认为您想使用CLSID_FileSaveDialog而不是CLSID_FileOpenDialog。除了基类 IFileDialog 之外,还可能使用IFileSaveDialog 。

于 2011-12-01T12:12:37.487 回答