Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# System.IO.Path.GetFileNameWithoutExtension不会修剪文件路径_C#_.net_.net 5 - Fatal编程技术网

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

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”) 顾名思义,此函数

当我使用.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”)
顾名思义,此函数将接受不带扩展名的文件。

获得此结果的唯一方法是在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