OpenFileDialog InitialDirectory不起作用

Mir*_*pas 6 c# openfiledialog winforms

我有这个代码:

OpenFileDialog dialog = new OpenFileDialog();
dialog.InitialDirectory = GetDataPath(...);
dialog.AutoUpgradeEnabled = false;
dialog.Filter = GetFilter(...);
if (dialog.ShowDialog(this) == DialogResult.OK)
{...}
Run Code Online (Sandbox Code Playgroud)

我希望,在每次运行时,将对话框放在同一文件夹 - GetDataPath(...)文件夹中,但它仍保留在最后选择的文件夹中.

这是正确的行为吗?你知道怎么解决这个问题吗?如果Windows在注册表中保存上次使用的路径,您知道如何找到它吗?

EDIT1:

附:

dialog.AutoUpgradeEnabled = true;
Run Code Online (Sandbox Code Playgroud)

按预期工作......

EDIT2:与此问题相同在Windows 7中获取SaveFileDialog的InitialDirectory属性的任何已知问题?

小智 6

不要将文件名包含在InitialDirectory中.仅限路径.

从msdn:在Windows Vista上,如果将InitialDirectory设置为完整文件名而不是目录路径,则初始目录将默认为应用程序路径,或者默认为用户上次选择文件的目录.


小智 6

对我来说这些答案没有帮助(Windows 7)。

我的路径看起来像这样:“C:/xxxx/yyyyy”切换到反斜杠后工作正常,我的路径现在看起来像这样:“C:\xxxxx\yyyyy”


Aks*_*oop 5

可能需要设置RestoreDirectory

OpenFileDialog dialog = new OpenFileDialog();
dialog.InitialDirectory = GetDataPath(...);
dialog.RestoreDirectory = true;
dialog.AutoUpgradeEnabled = false;
dialog.Filter = GetFilter(...);
if (dialog.ShowDialog(this) == DialogResult.OK)
{...}
Run Code Online (Sandbox Code Playgroud)

检查此链接