如果我使用磁盘(而不是URL)路径和~
,例如~/mike/foo
,则运行时会将其附加到当前工作目录而不是展开它。
这些方式都不起作用:
Path.GetFullPath
Path.Combine
是否有内置的.NET Core函数可以安全地在跨平台上扩展此类路径?
我的跨平台解决方案:
myPath = myPath
.Replace("~", Environment.GetFolderPath(Environment.SpecialFolder.UserProfile))
.Replace("//", "/");
但是通常总会有一些边缘情况(尤其是跨平台的情况)。因此,如果存在内置的.NET Core函数,则最好使用该函数。
(请添加您的答案,我会接受它。)
/~
不能作为有效路径工作,但是使用上面的代码扩展版本会扩展为//home/user
。 - John Smith