C# C.net核心中的Path.GetDirectoryName

C# C.net核心中的Path.GetDirectoryName,c#,linux,path,nunit,.net-core-2.0,C#,Linux,Path,Nunit,.net Core 2.0,我在.Net Core 2中有一个测试用例,我在下面为Path.GetDirectoryName提供输入 @C:+Path.directoryseportorchar 当我在测试用例中为Path.getDirectoryName断言时,它为Windows操作系统返回null,但为Linux操作系统返回C:为什么? 谁能解释一下我在这里做错了什么吗?在Windows上,C:\是根目录。它没有名字 在Linux上,C:\也是一个目录。它的名字是c:并且-因为您使用了一个相对路径-它是当前目录的一个子

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

@C:+Path.directoryseportorchar

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

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

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


问题是您正确地使用了Path.directoryseportorchar,以便提供的路径在两个操作系统中都能工作,但您使用了驱动器指示符C:,这在Linux中是不存在的。

明白了,我相应地修改了我的测试用例。