c#OpenFileDialog使用相对路径的初始目录

时间:2013-10-01 03:09:43

标签: c#

如何将初始目录设置为我的测试数据所在的位置?

var relPath = System.IO.Path.Combine( Application.StartupPath, "../../" )

dlg.Title = "Open a Credit Card List";
dlg.InitialDirectory = relPath ;

它打开的默认目录是.exe存在的位置:Project2 \ Project2 \ bin \ Debug

我希望默认情况下在我的测试数据存在的Project2文件夹中打开它。但它不允许我向上移动父目录。我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

您可以使用Directory.GetParent(string path)

string relPath = Directory.GetParent(Application.StartupPath).Parent.FullName;

或使用DirectoryInfo

DirectoryInfo drinfo =new DirectoryInfo(path);

DirectoryInfo twoLevelsUp =drinfo.Parent.Parent;
dlg.InitialDirectory = twoLevelsUp.FullName;;

答案 1 :(得分:0)

要将您的相对路径转换为绝对路径,您可以使用Path.GetFullPath()

var relPath = System.IO.Path.Combine(Application.StartupPath, @"\..\..");
relPath = Path.GetFullPath(relPath);
dlg.InitialDirectory = relPath;

或者,如果您希望将工作目录更改为测试数据:

Directory.SetCurrentDirectory(relPath);

更多信息: http://msdn.microsoft.com/en-us/library/system.io.path.getfullpath.aspx http://msdn.microsoft.com/en-us/library/system.io.directory.setcurrentdirectory.aspx