【发布时间】:2021-07-12 08:05:00
【问题描述】:
如果我们有/TestDir 作为示例路径,但我们在Windows 机器上,使用Path.Join 或Path.Combine 和NextDir 将产生/TestDir\NextDir。
有没有办法让它,如果我将它附加到的路径使用给定的分隔符 - 组合路径使用相同的分隔符? (Unix/Windows),即:
-
\TestDir与NextDir产生\TestDir\NextDir。 -
/TestDir与NextDir产生/TestDir/NextDir。
第一个目录将始终是根路径,这意味着它将始终包含要使用的路径分隔符。唯一的边缘情况是网络路径,因为它们总是以\\ 开头,但之后它们在 Unix/Windows 中会有所不同吗?如果我错了,请纠正我。
编辑:有人告诉我 : 是 Classic Mac 的路径分隔符 - 这是真的吗?我没有看到任何将其视为目录分隔符的 .NET API。
【问题讨论】:
-
UNC 路径在 Windows 中以双反斜杠开头。我认为它们也可以以双斜杠开头。
-
无法自动执行此操作,您必须自己进行字符串操作。但是,为什么你首先想要一条带有错误斜线的路径呢?
-
在 Windows 中,斜杠和反斜杠都被接受,因此为了跨平台兼容性,使用正斜杠可能是一个好主意。制作一个函数,在可以输入的任何地方替换“错误”的斜杠。
-
@BentTranberg 你知道哪些版本的 Windows 兼容吗?
-
不,但多年来一直都是双向的,所以我猜你可以遇到任何 Windows 版本。
标签: c# .net-core path .net-5 path-separator