OpenFileDialog InitialDirectory不接受相对路径吗?

时间:2014-02-14 02:48:06

标签: c# relative-path openfiledialog

dialogOpenFileDialog类对象,我正在使用ShowDialog()方法。

当我使用包含相对路径的路径时,例如:

dialog.InitialDirectory = "..\\abcd";
dialog.InitialDirectory = Directory.GetCurrentDirectory() + "..\\abcd";

ShowDialog()崩溃,我只能做一个明确的路径,从磁盘驱动器开始:

dialog.InitialDirectory = "C:\\ABC\\DEF\\abcd";

在这种情况下,我希望路径在我的.exe的当前目录上方1级,然后向下到目录abcd
Directory.GetCurrentDirectory()可以找到.exe的当前路径,这很好,但我不能继续使用".."

目录层次结构如下:

ABC
    DEF 
        abcd (where i want)
        defg (where .exe is at)

那么,有"..\\"InitialDirectory一起使用的方法吗? 或者我必须使用明确的路径? 谢谢!

3 个答案:

答案 0 :(得分:5)

我找到了自己的答案!!

string CombinedPath = System.IO.Path.Combine(Directory.GetCurrentDirectory(), "..\\abcd");
dialog.InitialDirectory = System.IO.Path.GetFullPath(CombinedPath);

答案 1 :(得分:2)

看看以下内容是否为您提供了所需的路径:

dialog.InitialDirectory
  = Path.Combine(Path.GetDirectoryName(Directory.GetCurrentDirectory()), "abcd");

Path.GetDirectoryName的调用会在最后一个目录分隔符后删除路径的最后一部分,无论是文件名还是文件夹名。

答案 2 :(得分:0)

另一种方式是

openFileDialog.InitialDirectory = Path.Combine(Application.StartupPath,@"..\YourSubDirectoryName");