我在SO搜索了很多帖子,但我发现的任何内容都只是存储历史记录以及如何将其删除的地方,例如:
How to clear a FileDialog's dropdown history?
我查看了所描述的注册表路径,但是应该存储最近打开的文件的路径在这里解释
View the list of recently opened files in Windows width C#
缺少我机器上的最后一个文件夹OpenSaveMRU。
也许已经存在问题?我怎么能解决它?
我的操作系统是带有最新可用补丁的Windows 7 x64。
编辑17.12.2013 10:40:
我发现OpenSaveMRU密钥已在Vista / Windows 7下重命名为OpenSavePidlMRU。 OpenSaveMRU and LastVisitedMRU
我正在显示对话框:
System.Win32.OpenFileDialog dialog = new System.Win32.OpenFileDialog();
dialog.AddExtension = true;
dialog.CheckPathExists = true;
dialog.DefaultExt = ".xaml";
dialog.Filter = "Xaml files (.xaml)|*xaml|All files|*.*";
dialog.FilterIndex = 0;
Boolean? result = dialog.ShowDialog();
if (result.HasValue && result.Value)
{
// business logic
}
打开一些文件后,下拉历史记录仍然为空。 有什么想法解决这个问题吗?
解决方案:
为xaml定义的过滤器出错了。 *和xaml之间缺少一个点。
答案 0 :(得分:2)
Filter = "Xaml files (.xaml)|*xaml|All files|*.*",
因为* xaml 不是扩展名。 而是写
Filter = "Xaml files (.xaml)|*.xaml|All files|*.*",
答案 1 :(得分:1)
每次尝试使用相同的对话框对象:
System.Win32.OpenFileDialog dialog = new System.Win32.OpenFileDialog()
{
AddExtension = true,
CheckPathExists = true,
DefaultExt = ".xaml",
Filter = "Xaml files (.xaml)|*xaml|All files|*.*",
FilterIndex = 0
};
private void FileOpen()
{
Boolean? result = dialog.ShowDialog();
if (result.HasValue && result.Value)
{
// business logic
}
}