2

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

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

...

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

玩记事本这似乎涉及打开文件、保存文件、打开文件,甚至在使用“Microsoft XPS Document Writer”打印时也会出现它自己的对话框。

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

4

2 回答 2

1

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

于 2012-08-20T12:55:07.647 回答
0

您应该查看此链接: MRU 位置就是您正在查看的内容!

这是一种访问它的方法:

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 方法来设置应用程序的当前工作目录

而从微软网站,它存储在注册表中的这个位置:

//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

希望这可以帮助

于 2012-08-20T12:15:05.653 回答