3

有没有办法在不设置文件打开对话框的 InitialDirectory 属性的情况下设置或获取 vista 文件打开对话框使用的初始目录?

我希望我的 WPF(在启动时)为所有打开/保存对话框设置一次默认文件夹。如果您在 Vista 中注意到,只要机器正在运行,它就会继续默认/跟踪用户从任何文件打开/保存为对话框中最后选择的目录。记事本或任何程序都以这种方式运行。

我试图完成此操作的原因是因为我不想在我的应用程序中跟踪它,设置和保存文件夹。我只想设置默认值,然后让 vista 跟踪它。

Directory.SetCurrentDirectory 不这样做。

4

2 回答 2

3

您排除了为解决问题而必须做的确切事情。如果您未设置 InitialDirectory,则对话框使用最后使用的目录。此信息存储在注册表中,按进程名称进行索引。您不能有选择地关闭此行为。

使用的注册表项已在 Windows 版本之间更改。我认为在 Win7 上它现在是 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU。它不再像以前在早期版本中那样采用明文形式。如果您想冒险尝试解析那里列出的键值,请确保验证 Windows 版本。坦率地说,这不值得您编写初始化 InitialDirectory 属性的简单代码。

于 2010-12-12T19:30:04.880 回答
0

如果您不想编写代码来继续加载和保存 OpenFileDialog 的目录,请编写一个执行此操作的包装函数,然后只需调用您的包装函数...

于 2010-12-12T19:38:33.850 回答