c# - 是否可以在针对 4.7.1 的 WinForms 项目中使用 Path.GetRelativePath (.NET Core2)?

标签 c# .net .net-core

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

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

相关文章:

c# - 使用 JSON 输入创建表定义的存储过程

c# - 数组的大小是否受制于int的上限(2147483647)?

linux - Debian 上的服务列表及其状态 .NET Core

.net - .net Framework 4 中的 FileSystemWatcher 有多可靠?

c# - 如何从 SQLException 中获取准确的 "constraint name"

c# - 如何阻止选择标签助手自动添加 'multiple' 属性

c# - 跨平台方式获取父进程ID

c# - SharePoint 列表项权限

c# - 我应该使用表格适配器吗?

c# - Controller Action 中的长时间运行方法 - MVC