我遇到了 AppDomain.CurrentDomain.BaseDirectory
的问题。
有时路径以''结尾,有时没有,我找不到原因。
如果我使用 Path.Combine
会很好,但我想使用 Directory.GetParent
并且它会产生不同的结果。
我目前的解决方案是:
var baseDir = AppDomain.CurrentDomain.BaseDirectory;
if (!baseDir.EndsWith("\\")) baseDir += "\\";
是否有其他方法获取应用程序的父目录?
最佳答案
您可以使用 TrimEnd 轻松确保您想要的行为:
var baseDir = AppDomain.CurrentDomain.BaseDirectory
.TrimEnd(Path.DirectorySeparatorChar) + Path.DirectorySeparatorChar;
为了获得最佳效率(通过避免额外分配),在进行更改之前检查字符串是否以 \
结尾,因为您并不总是需要:
const string sepChar = Path.DirectorySeparatorChar.ToString();
const string altChar = Path.AltDirectorySeparatorChar.ToString();
var baseDir = AppDomain.CurrentDomain.BaseDirectory;
if (!baseDir.EndsWith(sepChar) && !baseDir.EndsWith(altChar))
{
baseDir += sepChar;
}
关于c# - 如何确保路径中有尾随目录分隔符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20405965/