如何让用户保存到目录?

时间:2011-06-22 13:59:14

标签: visual-c++ file-io mfc

语言: C ++

开发环境: Microsoft Visual C ++

使用的库: MFC

问题:我正在创建一个大型偏好设置编辑工具,其中包含具有不同设置的对话框,供用户自定义。设置的每个“页面”都将写入自己的XML文件。

用户将有两个选项:1)保存这些,系统会提示他们指定要保存的页面,以及2)全部保存,将每个页面保存到自己的XML文件中。

对于全部保存功能,如果用户只需指定他/她希望保存所有文件的目录,我会喜欢它。我很确定我必须使用 FolderBrowserDialog 类,但我不确定如何。我想这与OpenFile对话框或SaveFile对话框非常相似,其中一个参数指定保存到目录。

我在MSDN上找到了FolderBrowserDialog类,但它没有用。任何帮助将不胜感激!

解决方案:我找到了一个有效的解决方案。它基本上是上面几个答案的组合,但对于将来寻求类似解决方案的人,我引用了 THIS 页面。作者为创建目录选择器对话框所需的混乱代码创建了一个包装类。谢谢你提出的所有建议。你们都帮助我朝着正确的方向前进。欢呼声。

~Jon

3 个答案:

答案 0 :(得分:2)

我认为要求用户保存“个人”页面很奇怪,我认为你应该将所有这些保存在一个文件中(嘿,但那只是我)。

如果您需要保存单个页面,则必须通过一个列出页面的小对话框提示用户,让用户选择哪个页面;或者您可以决定仅保存已修改的页面。

要选择文件夹,最简单的方法是使用ShBrowseForFolder(http://msdn.microsoft.com/en-us/library/bb762115(v = vs.85).aspx)

最大

答案 1 :(得分:2)

使用::SHBrowseForFolder()。它显示标准的“浏览文件夹对话框”(至少在Windows XP中;我不知道Vista / 7是否有新的)。
我个人在课堂上使用它,如here所示。

答案 2 :(得分:0)

查看the OPENFILENAME结构和GetSaveFileName函数。后者实际上显示了保存文件对话框。