.net core 为什么dotnet core 3.1中的新Uri(“/”)在*nix和windows中的表现不同?
下面的代码在*nix中工作,但在Windows中抛出.net core 为什么dotnet core 3.1中的新Uri(“/”)在*nix和windows中的表现不同?,.net-core,.net Core,下面的代码在*nix中工作,但在Windows中抛出invalidoOperationException var res = new Uri("/"); 我想这与文件有关:-分隔符(\用于windows,而/用于*nix)。但是如何/为什么?问题到底是什么?Uri构造函数将隐式文件Uri转换为显式文件Uri(file://...). /是unix中的隐式文件uri。在windows中不是。无论如何,你不应该硬编码IO路径字符。使用Path.Combine或System.IO
invalidoOperationException
var res = new Uri("/");
我想这与文件有关:-分隔符(
\
用于windows,而/
用于*nix)。但是如何/为什么?问题到底是什么?Uri构造函数将隐式文件Uri转换为显式文件Uri(file://...). /
是unix中的隐式文件uri。在windows中不是。无论如何,你不应该硬编码IO路径字符。使用Path.Combine
或System.IO.Path.directoryseportorchar
@Morse dotnet是否依赖于作为文件系统一部分的Uri?MSDN说了一些关于“隐式文件路径”的东西,但当它被认为是这样的时候,就没有提到。也许是没有计划的?