【问题标题】:Path.GetDirectoryName in C# .net coreC# .net 核心中的 Path.GetDirectoryName
【发布时间】:2018-03-07 07:10:58
【问题描述】:

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

@"C:" + Path.DirectorySeparatorChar

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

【问题讨论】:

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


    【解决方案1】:

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

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

    问题是您正确使用了Path.DirectorySeparatorChar,因此提供的路径在两个操作系统中都有效,但是您使用了驱动器指示符 (C:),这在 Linux 中是不存在的。

    【讨论】:

    • 知道了,我已经相应地修改了我的测试用例。
    猜你喜欢
    • 1970-01-01
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    • 2017-10-23
    • 2017-08-05
    • 1970-01-01
    • 2019-11-15
    相关资源
    最近更新 更多