这似乎是一个非常简单的问题,但是谷歌搜索没有任何用处。
我有针对.NET Framework 4.7.1的VS2017 WinForms C#项目。
我想利用Path.GetRelativePath中的.NET Core 2.X。
这是可以实现的(裸包或其他东西)吗?
PS。对于那些不愿自己移植.NET Core代码的人来说,这里是my adapted version of it。
答案 0 :(得分:2)
解决方法:如果由于某种原因无法在运行时引用或调用Core库,则可以自己实现该函数,这很简单:
public string GetRelativePath(string relativeTo, string path)
{
var uri = new Uri(relativeTo);
var rel = Uri.UnescapeDataString(uri.MakeRelativeUri(new Uri(path)).ToString()).Replace(Path.AltDirectorySeparatorChar, Path.DirectorySeparatorChar);
if (rel.Contains(Path.DirectorySeparatorChar.ToString()) == false)
{
rel = $".{ Path.DirectorySeparatorChar }{ rel }";
}
return rel;
}