验证SaveFileDialog的InitialDirectory?

Ran*_*ngy 3 c# validation wpf savefiledialog

我正在打开一个SaveFileDialog,其中包含一个基于用户定义路径的初始目录.我希望确保此路径在传入并打开对话框之前有效.现在我有这个:

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

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

bool? result = dialog.ShowDialog();
Run Code Online (Sandbox Code Playgroud)

但是,\当我调用ShowDialog时,它似乎正在滑落并导致崩溃.是否有其他可能导致崩溃的值?InitialDirectory属性需要遵循哪些规则?

Mik*_*ron 7

修复它的快捷方法是获取完整路径:

dialog.InitialDirectory = Path.GetFullPath(initialDirectory);
Run Code Online (Sandbox Code Playgroud)

这将扩展SaveFileDialog预期的绝对路径的相对路径.这将扩展几乎任何类似于路径的完整根路径.这包括诸如"/"(变成当前文件夹设置的任何驱动器的根目录)和""(变成当前文件夹)之类的内容.