OpenFileDialog InitialDirectory не работает - PullRequest
6 голосов
/ 11 января 2012

У меня есть этот код:

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

Я ожидаю, что при каждом запуске диалоговое окно будет находиться в одной папке - папке GetDataPath (...), но оно остается в последней выбранной папке.

Это правильное поведение? Вы знаете, как это исправить? Если Windows сохраняет последний использованный путь в реестре, знаете ли вы, как его найти?

EDIT1:

С:

dialog.AutoUpgradeEnabled = true;

работает как положено ...

EDIT2: та же проблема, что и здесь Любые известные проблемы с получением свойства InitialDirectory SaveFileDialog, работающего в Windows 7?

Ответы [ 11 ]

0 голосов
/ 28 марта 2013

У меня тоже были проблемы с этим. Вот как я это исправил:

Предположим, bakDir - это строка, содержащая начальный путь к каталогу, который вы хотите использовать для своего OpenFileDialog.

        OpenFileDialog openFile = new OpenFileDialog();
        if (!Directory.Exists(bakDir))
        {
            Directory.CreateDirectory(bakDir);
        }
        openFile.InitialDirectory = AppDomain.CurrentDomain.BaseDirectory + @"DbBackups";

И когда вы закончите делать свое дело с выбранным файлом, назовите это:

        openFile = null;
...