c# – 在Windows XP中使用打开文件对话框时,为什么当前工作目录更改?

在c#中使用打开的文件对话框时,我发现了一个奇怪的行为。

如果在Windows XP中使用此代码,当前工作目录将更改为所选文件的路径,但是如果在Windows 7中运行此代码,则当前工作目录不会更改。

    private void button1_Click(object sender, EventArgs e)
    {            
        MessageBox.Show(string.Format("Current Directory {0}",Directory.GetCurrentDirectory()), "My Application",MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
        DialogResult result = openFileDialog1.ShowDialog(); // Show the dialog and get result.
        if (result == DialogResult.OK) 
        {

        }
        MessageBox.Show(string.Format("Current Directory {0}", Directory.GetCurrentDirectory()), "My Application", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
    }

有人知道这个行为的原因吗?为什么目前的目录在XP而不是在Windows 7?

根据您的描述,听起来像XP和Windows7之间的RestoreDirectory属性的默认值是不同的。我不知道为什么会这样,但是您可以通过在代码中明确设置值来解决这个问题。将其设置为true将恢复对话框中的目录。
http://stackoverflow.com/questions/3018970/why-the-current-working-directory-changes-when-use-the-open-file-dialog-in-windo

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:c# – 在Windows XP中使用打开文件对话框时,为什么当前工作目录更改?