在 Vista 中,我一直使用一个IFileSaveDialog
让用户选择“另存为”文件夹。比如说,用户导出一个图像文件夹,并且需要选择一个新的或现有的目标文件夹。
简而言之,代码如下所示:
IFileSaveDialog* dialog; // created
dialog->SetOptions(FOS_PICKFOLDERS);
dialog->Show(NULL);
dialog->GetResult(&shellItem)
在 Windows 7 中,该FOS_PICKFOLDERS
选项似乎已被禁止(并且在API中被标记为这样)。SetOptions
调用的返回值为E_INVALIDARG
。如果我使用 IFileOpenDialog,我可以设置文件夹选项,但是在选择不存在的文件夹时会提示用户错误(尽管我的设置标志建议不要这样做)。
有没有另一种方法可以让新IFileDialog
的作为“保存文件夹”对话框?
[为了避免一些评论,SHBrowseForFolder API 仍然存在,但对于我们的 UI 决策者来说仍然不是一个可接受的解决方案。]