这似乎是一个非常简单的问题,但谷歌搜索没有任何用处。

我有针对 .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/

10-16 21:33