这可能很简单,但我正在尝试在我的代码中获取目录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”所以我不确定我做错了什么。
先谢谢。
答案 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从我们提供的字符串中获取父目录。