这似乎是一个非常简单的问题,但谷歌搜索没有找到任何有用的信息。
我有针对 .NET Framework 4.7.1 的 VS2017 WinForms C# 项目。
我想使用 Path.GetRelativePath来自 .NET Core 2.X .
是否可以实现(nuget 包之类的)?
附言。对于那些懒惰自己移植 .NET Core 代码的人,这里是 my adapted version of it .
最佳答案
解决方法:如果由于某种原因,无法在运行时引用或调用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;
}
关于c# - 是否可以在针对 4.7.1 的 WinForms 项目中使用 Path.GetRelativePath (.NET Core2)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51179331/