我在.Net Core 2中有一个测试用例,我在Path.GetDirectoryName
下面提供输入。
@" C:" + Path.DirectorySeparatorChar
当我在我的测试用例中断言Path.GetDirectoryName
时,它为Windows操作系统返回null
但为Linux操作系统返回C:
,为什么会这样?
谁能解释一下我在这里做错了什么?
答案 0 :(得分:1)
在Windows上,C:\
是根目录。它没有名字。
在Linux上,C:\
也是一个目录。它的名称是c:
并且 - 因为您使用了相对路径 - 它是当前目录的子目录。
问题是您已正确使用Path.DirectorySeparatorChar
以便提供的路径在两个操作系统中均可使用,但您使用的是驱动器指示符(C :),这是不存在的。 Linux操作系统。