2014-02-14 277 views
3

dialog是一个OpenFileDialog类对象,我使用的是ShowDialog()方法。OpenFileDialog InitialDirectory不接受相对路径吗?

当我使用含相对路径,如路径:

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

ShowDialog()崩溃,我只能做的就是给个明确的路径,通过磁盘驱动器启动:

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

在这种情况下,我希望路径在我的.exe的当前目录上向上1级,然后向下到目录abcd
.exe的当前路径可以通过Directory.GetCurrentDirectory()找到,这是每个fectly很好,但我不能目录hierarchyis喜欢去与".."

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

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

+0

检查此:http://stackoverflow.com/questions/1175242/setting-the-initial-directory-of-an-savefiledialog/1175250#1175250 – Matt

回答

3

我找到了我自己的答案!

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

查看是否存在以下让你你正在寻找的路径:

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

关闭路径的最后部分Path.GetDirectoryName条的电话,最后一个目录分离器后,它是否是一个文件名或文件夹名称。