.NET Windows API:获取或设置文件打开对话框使用的最新目录
-
09-10-2019 - |
题
是否有一种方法可以设置或获取Vista文件打开对话框中使用的初始目录,而无需在“ File Open”对话框上设置InitiaLdirectory属性?
我希望我的wpf(在启动)设置一次默认文件夹,用于所有打开/保存对话框。如果您在Vista中注意到,只要机器运行,它将继续从任何“打开”/“另存为对话框”中默认/跟踪用户的最后一个选定目录。记事本或任何计划以这种方式采取行动。
我之所以要这样做,是因为我不想在应用程序中跟踪它,设置和保存文件夹。我只想设置默认设置,然后让Vista跟踪它。
Directory.SetCurrentDirectory不执行此操作。
解决方案
您排除了解决问题所要做的确切事情。如果您不设置InitiaLdirectory,则对话框使用最后使用的目录。此信息存储在注册表中,按过程名称索引。您不能选择性地关闭此行为。
使用的注册表密钥在Windows版本之间发生了变化。我认为在win7上,现在是hkey_current_user software Microsoft Windows currentversion explorer comdlg32 lastVisitedpidlmru。它不再像以前在较早版本上那样在clearText中。如果您想冒险尝试解析那里列出的钥匙值,请确保验证Windows版本。坦白说,这不值得您必须编写的简单代码来初始化InitiaLdirectory属性。
其他提示
如果您不想编写代码来继续加载并保存openfiledialog目录,请编写一个包装功能,然后调用您的包装器函数...
不隶属于 StackOverflow