C#.net核心

时间:2017-09-26 07:19:05

标签: c# linux path nunit .net-core-2.0

我在.Net Core 2中有一个测试用例,我在Path.GetDirectoryName下面提供输入。

  

@" C:" + Path.DirectorySeparatorChar

当我在我的测试用例中断言Path.GetDirectoryName时,它为Windows操作系统返回null但为Linux操作系统返回C:,为什么会这样? 谁能解释一下我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

在Windows上,C:\是根目录。它没有名字。

在Linux上,C:\也是一个目录。它的名称是c:并且 - 因为您使用了相对路径 - 它是当前目录的子目录。

问题是您已正确使用Path.DirectorySeparatorChar以便提供的路径在两个操作系统中均可使用,但您使用的是驱动器指示符(C :),这是不存在的。 Linux操作系统。