以前在程序中使用的路径存储在哪里(例如FileDialog路径)?

时间:2012-08-20 12:04:09

标签: c# printing dialog

根据这篇msdn文章,FileDialog中使用的InitialDirectory属性的一个来源是:

  

以前在程序中使用的路径,可能是从上一个目录或文件操作中保留的。

     

...

因此,如果您从文件夹x中选择了第一个文件,则下次尝试选择文件时,它将打开FileDialog并选择文件夹x(无需您在那里导航)。

使用记事本这似乎可以打开文件,保存文件,打开文件,甚至在使用“Microsoft XPS Document Writer”进行打印时也可以显示文件。

所以我的问题是这些值存储在对话框之间?我希望能够看到它是什么并可能改变它?我想要更改它的特定区域是“Microsoft XPS Document Writer”打印机,它打开了它自己的对话框。所以它并不像设置initalDirectory值那么简单。

2 个答案:

答案 0 :(得分:1)

它存储在注册表中,位于HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\LastVisitedPidlMRU)的某个位置。

答案 1 :(得分:0)

你应该看看这个链接: 你正在看MRU locations

以下是访问它的方法:

var openFileDialog1 = new OpenFileDialog();
string path = openFileDialog1.InitialDirectory;
// you can change path if you want
openFileDialog1.InitialDirectory = path;
// after you are donw you can display you dialog
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
      // do something
}

另一种方法是使用Directory.SetCurrentDirectory方法设置应用程序的当前工作目录

Microsoft website开始,它存储在注册表中的这个位置:

//The MRU lists for Windows Explorer-style dialog boxes are stored by file type for each user in the following registry key:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU

希望这会有所帮助