从绝对名称 C# 获取 URI/URL 的父名称

2024-04-01

给定一个绝对 URI/URL,我想获取一个不包含叶部分的 URI/URL。例如:给定http://foo.com/bar/baz.html http://foo.com/bar/baz.html,我应该得到http://foo.com/bar/ http://foo.com/bar/.

我能想到的代码似乎有点冗长,所以我想知道是否有更好的方法。

static string GetParentUriString(Uri uri)
    {            
        StringBuilder parentName = new StringBuilder();

        // Append the scheme: http, ftp etc.
        parentName.Append(uri.Scheme);            

        // Appned the '://' after the http, ftp etc.
        parentName.Append("://");

        // Append the host name www.foo.com
        parentName.Append(uri.Host);

        // Append each segment except the last one. The last one is the
        // leaf and we will ignore it.
        for (int i = 0; i < uri.Segments.Length - 1; i++)
        {
            parentName.Append(uri.Segments[i]);
        }
        return parentName.ToString();
    }

人们会使用这样的函数:

  static void Main(string[] args)
    {            
        Uri uri = new Uri("http://foo.com/bar/baz.html");
        // Should return http://foo.com/bar/
        string parentName = GetParentUriString(uri);                        
    }

谢谢, 罗希特


你尝试过这个吗?看起来很简单。

Uri parent = new Uri(uri, "..");
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从绝对名称 C# 获取 URI/URL 的父名称 的相关文章

  • C++ 维护子类对象的混合集合

    如果我在这里错过了一个相当基本的概念 我很抱歉 但我正在尝试弄清楚如何维护多个类类型的集合 所有类类型都派生自同一个父类 并且在检索它们时仍然可以访问它们的特定于子类的方法从集合中 作为上下文 我有一个基类 BaseClass 和许多类 例
  • 为什么在连接两个字符串时 Python 比 C 更快?

    目前我想比较 Python 和 C 用来处理字符串的速度 我认为 C 应该比 Python 提供更好的性能 然而 我得到了完全相反的结果 这是 C 程序 include
  • 如何在多线程C++ 17程序中交换两个指针?

    我有两个指针 pA 和 pB 它们指向两个大的哈希映射对象 当pB指向的哈希图完全更新后 我想交换pB和pA 在C 17中 如何快速且线程安全地交换它们 原子 我是 c 17 的新手 2个指针的原子无等待交换可以通过以下方式实现 inclu
  • 如何捕获未发送到 stdout 的命令行文本?

    我在项目中使用 LAME 命令行 mp3 编码器 我希望能够看到某人正在使用什么版本 如果我只执行 LAME exe 而不带参数 我会得到 例如 C LAME gt LAME exe LAME 32 bits version 3 98 2
  • ComboBox DataBinding 导致 ArgumentException

    我的几个类对象 class Person public string Name get set public string Sex get set public int Age get set public override string
  • JNI 将 Char* 2D 数组传递给 JAVA 代码

    我想从 C 代码通过 JNI 层传递以下指针数组 char result MAXTEST MAXRESPONSE 12 12 8 3 29 70 5 2 42 42 在java代码中我写了以下声明 public static native
  • 查看 NuGet 包依赖关系层次结构

    有没有一种方法 文本或图形 来查看 NuGet 包之间的依赖关系层次结构 如果您使用的是新的 csproj 您可以在此处获取所有依赖项 在项目构建后 项目目录 obj project assets json
  • Python 属性和 Swig

    我正在尝试使用 swig 为一些 C 代码创建 python 绑定 我似乎遇到了一个问题 试图从我拥有的一些访问器函数创建 python 属性 方法如下 class Player public void entity Entity enti
  • 为什么可以通过ref参数修改readonly字段?

    考虑 class Foo private readonly string value public Foo Bar ref value private void Bar ref string value value hello world
  • 如何在 Qt 应用程序中通过终端命令运行分离的应用程序?

    我想使用命令 cd opencv opencv 3 0 0 alpha samples cpp cpp example facedetect lena jpg 在 Qt 应用程序中按钮的 clicked 方法上运行 OpenCV 示例代码
  • 在视口中查找 WPF 控件

    Updated 这可能是一个简单或复杂的问题 但在 wpf 中 我有一个列表框 我用一个填充数据模板从列表中 有没有办法找出特定的数据模板项位于视口中 即我已滚动到其位置并且可以查看 目前我连接到了 listbox ScrollChange
  • 在 NaN 情况下 to_string() 可以返回什么

    我使用 VS 2012 遇到了非常令人恼火的行为 有时我的浮点数是 NaN auto dbgHelp std to string myFloat dbgHelp最终包含5008角色 你不能发明这个东西 其中大部分为0 最终结果是 0 INF
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • 在屏幕上获取字符

    我浏览了 NCurses 函数列表 似乎找不到返回已打印在屏幕上的字符的函数 每个字符单元格中存储的字符是否有可访问的值 如果没有的话Windows终端有类似的功能吗 我想用它来替换屏幕上某个值的所有字符 例如 所有a s 具有不同的特征
  • 使 Guid 属性成为线程安全的

    我的一个类有一个 Guid 类型的属性 该属性可以由多个线程同时读写 我的印象是对 Guid 的读取和写入不是原子的 因此我应该锁定它们 我选择这样做 public Guid TestKey get lock testKeyLock ret
  • C++ new * char 不为空

    我有一个问题 我在 ASIO 中开发服务器 数据包采用尖头字符 当我创建新字符时 例如char buffer new char 128 我必须手动将其清理为空 By for int i 0 i lt 128 i buffer i 0x00
  • 在 Windows Phone silverlight 8.1 上接收 WNS 推送通知

    我有 Windows Phone 8 1 silverlight 应用程序 我想使用新框架 WNS 接收通知 我在 package appxmanifest 中有
  • 使用 C 在 OS X 中获取其他进程的 argv

    我想获得其他进程的argv 例如ps 我使用的是在 Intel 或 PowerPC 上运行的 Mac OS X 10 4 11 首先 我阅读了 ps 和 man kvm 的代码 然后编写了一些 C 代码 include
  • 如何减少具有多个单元的 PdfPTable 的内存消耗

    我正在使用 ITextSharp 创建一个 PDF 它由单个 PdfTable 组成 不幸的是 对于特定的数据集 由于创建了大量 PdfPCell 我遇到了内存不足异常 我已经分析了内存使用情况 我有近百万个单元格的 1 2 在这种情况下有
  • 如何将十六进制字符串转换为无符号长整型?

    我有以下十六进制值 CString str str T FFF000 如何将其转换为unsigned long 您可以使用strtol作用于常规 C 字符串的函数 它使用指定的基数将字符串转换为 long long l strtol str

随机推荐

  • AngularJS如何动态地将列表拆分为多列

    我有许多 li 项目 我希望它们均匀分布在 3 个不同的列中 所以我需要列表项的前三分之一显示在第一个 ul 中 接下来的三分之一显示在第二个 ul 中 等等 正确知道我的方法有点静态 ul class small 12 medium 4
  • 使用 Excel 宏传递变量以完成句子

    我是 Excel 宏的新手 如果我问了什么愚蠢的问题 请纠正我 我想在 Excel 工作表中打印以下 CALL 语句 其中 SCHEMA NAME PROCEDURE NAME INPUT DATE EXIT DATE 将被参数化 并且我想
  • 将附加文件添加到 VSTS 发布到 azure web 应用程序

    我在 VSTS 中有一个版本可以将我的 web 应用程序部署到 azure 应用程序服务 为此 我使用 Azure 应用服务部署步骤 在正常部署 web 应用程序后 我想从另一个构建结果中添加额外的 zip 工件 我只想将这些文件复制到 a
  • 将 HTML5 画布转换为 SVG 的方法?

    我需要将 HTML5 画布转换为 SVG 进行编辑 我怎样才能实现这个目标 Try canvas2svg js https github com gliffy canvas2svg Demo http gliffy github io ca
  • RStudio Shiny 动态选择

    在我的 RStudio Shiny 中 我得到了我的selectInput在我里面server R 以及关于ui R我有一个tags语句来更改选择框的宽度和高度 它在页面加载时起作用 但当我进入单一类型时它会恢复为默认大小 有什么想法如何解
  • 您正在使用 X509TrustManager 的不安全实现

    我在 Google Play 中有一个应用程序 今天我收到一封来自 Google 的邮件 内容如下 Google Play 警告 您正在使用不安全的实现 X509信任管理器 它介绍了有关 SSL 证书问题以及解决该问题的方法 我是出于好奇才
  • Swift - 使用 CGContext 用手指绘图

    我正在尝试制作一个绘图应用程序 我有一个自定义 UIView class DrawView UIView var touch UITouch var lastPoint CGPoint var currentPoint CGPoint ov
  • Phonegap 代码作为 Web 应用程序

    我正在考虑重新使用我的phonegap html css 和js 代码作为网络应用程序 我将仔细检查并删除所有仅限移动设备的功能 目的是拥有一个提供一些移动应用程序功能的网络应用程序 我目前使用的移动设备功能很少 但我猜维护我的移动应用程序
  • 配置vscode json格式空间

    我想配置 vscode 以使用 2 个缩进空间 而不是默认情况下的 4 个缩进空间 来格式化我的 JSON 对象 我怎样才能做到这一点 将以下行粘贴到 VSCode 中的 settings json 中 然后就完成了 json editor
  • 使用 Xpath 比较属性值

    给定以下文档结构 我如何使用 Xpath 检查两个属性值是否匹配
  • 类型错误:无法 pickle _thread.lock 对象

    尝试使用共享队列同时运行两个不同的函数并收到错误 如何使用共享队列同时运行两个函数 这是 Windows 7 上的 Python 版本 3 6 from multiprocessing import Process from queue i
  • (播放 2.4)特征中的依赖注入?

    在play 2 4中 是否可以在trait中使用依赖注入 有例子吗 Thanks 我在这里谈论 Guice 的运行时 DI 因为它是 Play 使用的默认方法 其他 DI 方法或框架可能有所不同 不可能将依赖项注入到特征中 因为特征不可实例
  • 查看 sp_execute 正在做什么

    在我的 MS SQL Profiler 中 我看到很多这样的小查询 执行 sp execute 1 p0 15954 我知道从理论上讲这是可行的 这是执行先前创建的查询并传入特定参数 但问题是我不确定是什么原因导致这些查询 有没有办法查看这
  • 如何避免使用 KITKAT 4.4.2 版本的 SD 卡上出现“EACCES 权限被拒绝”的情况。谷歌的新政策

    android kitkat 4 4 2 版本是针对 writeaccess 实现的新的 google 策略 到目前为止我还不明白 我在其他应用程序中读到了很多有关此问题的信息 他们收到 EACCES 权限被拒绝 的消息 我的应用程序需要写
  • Proxifier 是如何工作的?

    如你所知Proxifier是一个程序 允许不支持通过代理服务器工作的网络应用程序通过 HTTPS 或 SOCKS 进行操作 它可以处理来自正在运行的应用程序的任何传输 我想知道它是如何做到这一点以及我如何写一个这样的 FreeCap htt
  • d3.按属性值选择

    我是 d3 的新手 我有这样的定义 node node enter append circle attr id function d return d id attr class node on mouseover mouseover no
  • java.util.Date(int,int,int) 已弃用 [重复]

    这个问题在这里已经有答案了 构造函数java util Date int int int 已弃用 有没有像Java一样简单设置日期的方法 执行此操作的未弃用方法是什么 Date date new Date 2015 3 2 执行此操作的未弃
  • 在应用程序启动时以模态方式呈现视图控制器

    我的应用程序有一个设置屏幕 如果满足某些条件 该屏幕应以模态方式呈现在根视图控制器上 我已经在 SO 和互联网上四处查看 到目前为止 关于如何执行此操作的最接近的答案在这里 AppDelegate rootViewController 和
  • 使用依赖注入和“完成”编写 Karma + Mocha 测试?

    在 mocha 中编写 Karma 单元测试最优雅的方法是什么 它既具有依赖注入又具有done 依赖注入 describe cows function it farts a lot inject function cow do stuff
  • 从绝对名称 C# 获取 URI/URL 的父名称

    给定一个绝对 URI URL 我想获取一个不包含叶部分的 URI URL 例如 给定http foo com bar baz html http foo com bar baz html 我应该得到http foo com bar http