Проверка InitialDirectory для SaveFileDialog? - PullRequest
3 голосов
/ 26 февраля 2011

Я открываю SaveFileDialog с начальным каталогом на основе определенного пользователем пути.Я хочу убедиться, что этот путь действителен, прежде чем передать его и открыть диалоговое окно.Прямо сейчас у меня есть это:

Microsoft.Win32.SaveFileDialog dialog = new Microsoft.Win32.SaveFileDialog();

if (!string.IsNullOrEmpty(initialDirectory) && Directory.Exists(initialDirectory))
{
    dialog.InitialDirectory = initialDirectory;
}

bool? result = dialog.ShowDialog();

Однако кажется, что \ ускользает и вызывает сбой при вызове ShowDialog.Существуют ли другие значения, которые могут вызвать сбои?Каким правилам должно следовать свойство InitialDirectory?

1 Ответ

7 голосов
/ 27 февраля 2011

Быстрый и простой способ исправить это - получить полный путь:

dialog.InitialDirectory = Path.GetFullPath(initialDirectory);

Это расширит относительные пути до абсолютных, ожидаемых SaveFileDialog. Это расширит практически все, что напоминает путь, на полный, укоренившийся путь. Это включает в себя такие вещи, как «/» (превращается в корень диска, на который установлена ​​текущая папка) и «» (превращается в текущую папку).

...