C# System.IO.Path.GetFileNameWithoutExtension不会修剪文件路径
当我使用.Net 5编译器时,函数C# System.IO.Path.GetFileNameWithoutExtension不会修剪文件路径,c#,.net,.net-5,C#,.net,.net 5,当我使用.Net 5编译器时,函数System.IO.Path.GetFileNameWithoutExtension不会修剪文件路径 例如: System.IO.Path.GetFileNameWithoutExtension(@"C:\test\temp123.yaml"); 返回: C:\test\temp123 “System.IO.Path.GetFileNameWithoutExtension(@“C:\test\temp123.yaml”) 顾名思义,此函数
System.IO.Path.GetFileNameWithoutExtension
不会修剪文件路径
例如:
System.IO.Path.GetFileNameWithoutExtension(@"C:\test\temp123.yaml");
返回:
C:\test\temp123
“System.IO.Path.GetFileNameWithoutExtension(@“C:\test\temp123.yaml”)
顾名思义,此函数将接受不带扩展名的文件。获得此结果的唯一方法是在Linux上使用.NET Core或Mono 如果在dotNetFiddle上运行此代码: 您将获得:
temp123
Microsoft Windows NT 6.2.9200.0
如果您尝试,您将获得:
c:\test\temp123
Unix 5.4.0.1036
不要在Windows上复制。你在什么操作系统上试过这个?顺便说一句,如果你所说的在Windows上是真的,那么19年前成千上万的开发者会注意到dotnetfiddle上的图像是不可复制的。图像不是代码。到小提琴的实际链接会很有用,但即使如此,获得发布结果的唯一方法是让字符串包含看起来像反斜杠的字符,但不适用于.NET 4.7.2或Roslyn 3.8。NET5生成您发布的内容,这意味着该站点使用Linux作为该目标。在Linux上,``不是路径分隔符,它是名称的一部分。如果在Windows上运行此.NET 5代码,您将获得预期的行为add
Console.WriteLine(Environment.OSVersion.ToString())代码>看看原因。事实恰恰相反。它从没有扩展名的路径返回文件名。对不起,我翻译错了!我不太懂英语
c:\test\temp123
Unix 5.4.0.1036