首页 > C# > Path.Combing很方便,但是在.NET框架中是否有类似的URL函数?

Path.Combing很方便,但是在.NET框架中是否有类似的URL函数?

上一篇 下一篇

Path.Combing很方便,但是在.NET框架中是否有类似的URL函数?

我正在寻找这样的语法:

Url.Combine("https://www.lanrenmb.com/", "/Images/Image.jpg")

这将返回:

分割线

网友回答:

这可能是一个合适的简单解决方案:

public static string Combine(string uri1, string uri2)
{
    uri1 = uri1.TrimEnd('/');
    uri2 = uri2.TrimStart('/');
    return string.Format("{0}/{1}", uri1, uri2);
}

分割线

网友回答:

Uri有一个构造函数应该为您执行此操作:new Uri(Uri baseUri, string relativeUri)

下面是一个示例:

Uri baseUri = new Uri("https://www.lanrenmb.com");
Uri myUri = new Uri(baseUri, "catalog/shownew.htm");

编辑注意:请注意,此方法无法按预期工作。在某些情况下,它可以削减部分baseUri。请参阅评论和其他答案。

分割线

网友回答:

这里已经有一些很好的答案。根据 mdsharpe 建议,这里有一个扩展方法,当你想要处理 Uri 实例时,可以轻松使用:

using System;
using System.Linq;

public static class UriExtensions
{
    public static Uri Append(this Uri uri, params string[] paths)
    {
        return new Uri(paths.Aggregate(uri.AbsoluteUri, (current, path) => string.Format("{0}/{1}", current.TrimEnd('/'), path.TrimStart('/'))));
    }
}

和使用示例:

var url = new Uri("https://www.lanrenmb.com/subpath/").Append("/part1/", "part2").AbsoluteUri;

这将产生 https://www.lanrenmb.com/subpath/part1/part2

如果您想使用字符串而不是 Uris,那么以下内容也将产生相同的结果,只需调整它以满足您的需求:

public string JoinUriSegments(string uri, params string[] segments)
{
    if (string.IsNullOrWhiteSpace(uri))
        return null;

    if (segments == null || segments.Length == 0)
        return uri;

    return segments.Aggregate(uri, (current, segment) => $"{current.TrimEnd('/')}/{segment.TrimStart('/')}");
}

var uri = JoinUriSegements("https://www.lanrenmb.com/subpath/", "/part1/", "part2");

模板简介:该模板名称为【Path.Combing很方便,但是在.NET框架中是否有类似的URL函数?】,大小是暂无信息,文档格式为.编程语言,推荐使用Sublime/Dreamweaver/HBuilder打开,作品中的图片,文字等数据均可修改,图片请在作品中选中图片替换即可,文字修改直接点击文字修改即可,您也可以新增或修改作品中的内容,该模板来自用户分享,如有侵权行为请联系网站客服处理。欢迎来懒人模板【C#】栏目查找您需要的精美模板。

相关搜索
  • 下载密码 lanrenmb
  • 下载次数 221次
  • 使用软件 Sublime/Dreamweaver/HBuilder
  • 文件格式 编程语言
  • 文件大小 暂无信息
  • 上传时间 02-14
  • 作者 网友投稿
  • 肖像权 人物画像及字体仅供参考
栏目分类 更多 >
热门推荐 更多 >
html5 微信公众平台 微信素材 自适应 微信图片 企业网站 微信文章 响应式 单页式简历模板 微信模板
您可能会喜欢的其他模板