打开文件对话框转到错误的目录

时间:2017-11-20 19:26:49

标签: c# directory

我有一个程序,我打开多个文件并用它们做事。我有按钮选择默认位置并将其存储为设置。

OpenFileDialog defLoc = new OpenFileDialog()
{
    CheckPathExists = true,
    Title = "Select the default folder"
};

if (defLoc.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
    Properties.Settings.Default.DefaultFolder = 
        System.IO.Path.GetDirectoryName(defLoc.FileName);
    Console.WriteLine("Default folder set: " + Properties.Settings.Default.DefaultFolder);
}

此后,还有2个其他选择文件按钮。他们每个人都有自己的OpenFileDialog方法。出于某种原因,他们似乎共享了最后一个位置的群组记忆。例如:

首先我将DefaultLocation设置为C:\Desktop

然后我使用OpenFile1选择C:\Desktop\GenericFolder\GenericFile1.txt

现在,当我使用OpenFile2时,我想回到设置为默认位置C:\Desktop的位置,而是从C:\Desktop\GenericFolder开始。

在我的代码中,我在初始化每个OpenFileDialog时执行此操作:

 OpenFileDialog openFileDialog1 = new OpenFileDialog
        {
            InitialDirectory = Properties.Settings.Default.DefaultFolder,
            RestoreDirectory = false,
        };

这应该把我放在我正在设置的位置,但由于某种原因它没有。相反,正如我在上面演示的那样,它只是在最后一个打开的位置吐出来。

编辑: 根据Steve的建议,我在默认文件选择器中的Properties.Settings.Default.Save();之后添加了Console.WriteLine();

1 个答案:

答案 0 :(得分:1)

问题是您在设置路径后没有调用Save()。下次启动应用程序时,设置已重置。