我在 .Net Core 2 中有一个测试用例,我在其中向 Path.GetDirectoryName
提供以下输入。
@"C:" + Path.DirectorySeparatorChar
当我在测试用例中为 Path.GetDirectoryName
断言时,对于 Windows 操作系统它返回 null
但对于 Linux 操作系统返回 C:
,为什么这样?
谁能解释一下我在这里做错了什么?
最佳答案
在 Windows 上,C:\
是根目录。它没有名字。
在 Linux 上,C:\
也是一个目录。它的名称是 c:
并且 - 因为您使用了相对路径 - 它是当前目录的子目录。
问题是您正确使用了 Path.DirectorySeparatorChar
以便所提供的路径在两个操作系统中都有效,但是您使用了驱动器指示符 (C:),这是不正确的在 Linux 中不存在。
关于c# - C# .net 核心中的 Path.GetDirectoryName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46420049/