【发布时间】:2010-12-10 06:21:12
【问题描述】:
在 Vista 中,我一直使用 IFileSaveDialog 让用户选择“另存为”文件夹。比如说,用户导出一个图像文件夹,并且需要选择一个新的或现有的目标文件夹。
简单来说,代码是这样的:
IFileSaveDialog* dialog; // created
dialog->SetOptions(FOS_PICKFOLDERS);
dialog->Show(NULL);
dialog->GetResult(&shellItem)
在 Windows 7 中,FOS_PICKFOLDERS 选项似乎已被禁止(并在 the API 中标记为这样)。 SetOptions 调用的返回值为E_INVALIDARG。如果我使用 IFileOpenDialog,我可以设置文件夹选项,但在选择不存在的文件夹时会提示用户错误(尽管我的设置标志建议不要这样做)。
是否有其他方法可以让新的IFileDialog 充当“保存文件夹”对话框?
[为了阻止一些 cmets,SHBrowseForFolder API 仍然存在,但对于我们的 UI 决策者来说仍然不是一个可接受的解决方案。]
【问题讨论】:
-
有趣的是,Windows 团队早在 4 月就在其博客的示例中使用了此标志! windowsteamblog.com/blogs/developers/archive/2009/04/16/…
-
还有来自 kazoobrewer 的评论告诉他们它不再有效。我想那会是你……
-
有时感觉就像你是唯一一个在野外使用 API 的开发者......
-
Windows 7 开发者博客条目Light Up with Windows 7 Libraries存档
标签: winapi windows-7 folderbrowserdialog