获取目录root不按预期方式运行

时间:2014-08-04 21:04:55

标签: c#

这可能很简单,但我正在尝试在我的代码中获取目录root。

这是我的代码:

var appdir = AppDomain.CurrentDomain.BaseDirectory;
var ppsdir = Directory.GetParent(appdir).FullName;

appdir  is coming back as "C:\\Program Files (x86)\\PPS\\PpsUpdate\\"
but ppsdir is coming back as "C:\\Program Files (x86)\\PPS\\PpsUpdate"

我需要ppsdir为“C:\ Program Files(x86)\ PPS”所以我不确定我做错了什么。

先谢谢。

2 个答案:

答案 0 :(得分:2)

请参阅MSDN中的Directory.GetParent

  

此方法返回的字符串包含路径中的所有字符,但不包括最后一个 DirectorySeparatorChar AltDirectorySeparatorChar

因此,在我们的案例中,Directory.GetParent似乎只是为了削减最后的\

正如@CodeCaster建议的那样,你可以使用TrimEnd来摆脱尾随的\

答案 1 :(得分:2)

试试这个:

var appdir = Path.GetDirectoryName(AppDomain.CurrentDomain.BaseDirectory);
var ppsdir = Directory.GetParent(appdir).FullName;

它应该给你正确的目录。

Path.GetDirectoryName将获取路径名,直到不包括最后一个DirectorySeparatorChar。见MSDN。 Directory.GetParent从我们提供的字符串中获取父目录。