c# - 如何确保路径中有尾随目录分隔符?

标签 c# .net path

我遇到了 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/

相关文章:

c# - Visual C# 创建数据库路径,使其在不同的 PC 上运行

c# - 按字母顺序对字符串中的数字进行排序

.net - CLR 中的原生浮点类型用法

c# - 防止在 DataGridView 中选择单元格

java - WebDriver:我无法设置可运行 Jar 中的 IEDriverServer.exe 的路径

c++ - Qt : how to include path with space in pro

c# - 如何避免使用 DynamicProxy::CreateClassProxyWithTarget 双重构建代理?

时间:2019-03-17 标签:c#.nettasks/threadingconsoleapplication

c# - WebApi 5.1.1 Api 或 OData 中的任何请求都会返回 404

c# - 对于 var q = "A"+ "B"+ "C",字符串连接在 C# 中是如何发生的