为什么FileDialog有时不记得初始目录?

时间:2010-03-11 11:17:26

标签: c# registry filedialog

我已经创建了一个WPF应用程序,您可以在其上打开一些Open / SaveFileDialogs。在我的电脑上,它记得我上次使用这样一个对话框的目录,并在我打开另一个这样的对话框时将其设置为初始目录。但是在我同事的电脑上却不记得了。

我使用的确切类别是Microsoft.Win32.OpenFileDialog。我们都安装了WinXP。

导致这种情况的原因是什么?

更新 显然这个问题还没有解决。我发现它也发生在我的电脑上。我发现当我选择多个文件并单击打开或按回车键时,它不会保存它所在的位置。但是当我只选择一个文件并打开时钟或按下回车键(或双击它)时, 会记住该位置。

以下是代码:

public override void Execute(object parameter) 
{
    OpenFileDialog dialog = new OpenFileDialog();
    dialog.DefaultExt = ".txt";
    dialog.Filter = "Text files (.txt)|*.txt";
    dialog.Multiselect = true;
    dialog.Title = "Select a trace file";
    // The documentation says ShowDialog always returns either true or false, 
    // so we get the value of the returned Nullable<bool> immediately to get 
    // rid of the Nullable<bool> type.
    bool result = dialog.ShowDialog().Value;
    if (result)
    {
        foreach (string fileName in dialog.FileNames)
        {
            traceFilesViewModel.TraceFileList.Add(fileName);

            traceFilesViewModel.StatusBackground = Brushes.PeachPuff;
            traceFilesViewModel.StatusForeground = Brushes.Red;
            traceFilesViewModel.StatusText = "Trace files not loaded.";
        }
    }
}

2 个答案:

答案 0 :(得分:4)

可能使OpenFileDialog“忘记”最后使用目录的事情是:

  • 文件夹已被移动/重命名
  • 用户无权再阅读该文件夹
  • 系统驱动器(包含用户配置文件)已满,用户的配置文件无法正确存储在本地计算机上
  • 应用程序从远程位置执行,此位置不被视为受信任(例如:\ server \ deployment \ myapp.exe)

我希望它有所帮助。

答案 1 :(得分:0)

如果仍然存在错误,您可以使用此属性保存初始目录:openFileDialog1.InitialDirectory = "c:\"

更多信息:MDSN FileDialog.InitialDirectory Property