问题描述
当我使用 .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");" 这个函数,顾名思义,就是取不带扩展名的文件。