dialog
是OpenFileDialog
类对象,我正在使用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
一起使用的方法吗?
或者我必须使用明确的路径?
谢谢!
答案 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");