System.IO.Path.GetFileNameWithoutExtension 不修剪文件路径

问题描述

当我使用 .Net 5 编译器时,函数 System.IO.Path.GetFileNameWithoutExtension 不会修剪文件路径。

示例:

System.IO.Path.GetFileNameWithoutExtension(@"C:\test\temp123.yaml");

返回:

C:\test\temp123

解决方法

获得此结果的唯一方法是在 Linux 上使用 .NET Core 或 Mono。

如果您在 dotNetFiddle targeting .NET 4.7.2 上运行此代码:

public static void Main()
{
    var name=Path.GetFileNameWithoutExtension(@"c:\test\temp123.yaml");
    Console.WriteLine(name);
    Console.WriteLine(Environment.OSVersion.ToString());
}

你会得到:

temp123
Microsoft Windows NT 6.2.9200.0

如果你尝试 .NET (Core) 5,你会得到:

c:\test\temp123
Unix 5.4.0.1036
,

"System.IO.Path.GetFileNameWithoutExtension(@"C:\test\temp123.yaml");" 这个函数,顾名思义,就是取不带扩展名的文件。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...