今天在写代码时遇到这样一个问题:

如何从字符串 "http://job.cnblogs.com/images/job_logo.gif" 中得到 "/images/job_logo.gif"?

对这个问题的解决方法的要求是:

1. 只能调用 .NET 类库中的 API;

2. 用最简单的方法实现。

开始我想到的是 System.IO.Path,代码如下:

Path.GetDirectoryName(url) + "\\" + Path.GetFileName(url);

得到的是错误的结果:

http:\job.cnblogs.com\images\job_logo.gif

接着想到的是 System.Web.VirtualPathUtility,代码如下:

VirtualPathUtility.GetDirectory(url) + VirtualPathUtility.GetFileName(url);

运行报错:

System.ArgumentException : The relative virtual path 'http:/job.cnblogs.com/images/job_logo.gif' is not allowed here.

要将 "http://job.cnblogs.com/images/job_logo.gif" 改为 "/images/job_logo.gif" 才能得到正确的结果。

后来,在 stackoverflow 上受到启发, 用 System.Uri 轻松搞定!代码如下:

new Uri(url).AbsolutePath;

[C#]从URL中获取路径的最简单方法-new Uri(url).AbsolutePath相关推荐

  1. html怎么样取jsp中的路径,jsp中获得路径的两种方法和获得url路径的方法(推荐)

    是解决相对路径的问题,可返回站点的根路径. //这样获得的是绝对路径 //这样获得的是相对路径 能够更有效的防治连接的失效. request.getContextPath()得到的是项目的名字,如果项 ...

  2. C#中获取路径的几种方法

    前一段时间写代码时经常遇到获取路径问题,总是感觉有点乱,于是就总结了下,大家若有需要可以参考 1.    在.Net中web开发时 (1)  ~/在runat=server的控件中会自动被解析为Req ...

  3. 请求筛选模块被配置为拒绝包含 hiddenSegment 节的 URL 中的路径

    转自原文 请求筛选模块被配置为拒绝包含 hiddenSegment 节的 URL 中的路径. 打开C:\Windows\System32\inetsrv\config路径 找到applicationH ...

  4. php 获取url扩展名,php 从url中获取文件扩展名

    摘要 腾兴网为您分享:php 从url中获取文件扩展名,之了课堂,余额宝,小熊到家,仙乐等软件知识,以及刷迷你币,环球网校视频课件,极品飞车ol,任务吧,怪物猎人世界完美,a屏,蒲公英分发平台,达州银 ...

  5. Delphi中获取路径的函数

    Delphi中获取路径的函数 //********获取当前路径*************** GetCurrentDir() //获取当前的Windows打开的目录,无斜'\' extractFile ...

  6. c# typescript_在任何IDE中从C#,Java或Python代码获取TypeScript接口的简单方法

    c# typescript by Leonardo Carreiro 莱昂纳多·卡雷罗(Leonardo Carreiro) 在任何IDE中从C#,Java或Python代码获取TypeScript接 ...

  7. Spring 中获取 request 的几种方法,及其线程安全性分析

    概述 在使用Spring MVC开发Web系统时,经常需要在处理请求时使用request对象,比如获取客户端ip地址.请求的url.header中的属性(如cookie.授权信息).body中的数据等 ...

  8. IIS 7、8启用nginx代理后日志中获取访客真实IP方法

    所需的步骤取决于您的IIS版本.此操作适用iis7之上版本. 1.下载插件F5XForwardedFor.dll:http://download.west263.net/iis7-rewrite%E6 ...

  9. 高级 | Java中获取类名的3种方法

    转载自 高级 | Java中获取类名的3种方法 获取类名的方法 Java 中获取类名的方式主要有以下三种. getName() 返回的是虚拟机里面的class的类名表现形式. getCanonical ...

最新文章

  1. 缓存区溢出检测工具BED
  2. php表单数据提交到本业,PHP_PHP+Mysql+jQuery实现发布微博程序 php篇,先还是要说明本例的业务流程 - phpStudy...
  3. c 结构体在声明时赋值_Java基础知识 初识Java 循环结构进阶 数组 数据类型 各种运算符...
  4. android 索引怎么使用情况,android 數據庫查詢中使用索引-大幅提高數據庫操作速度...
  5. .NET Core 收徒,有缘者,可破瓶颈
  6. [LeetCode]Find Minimum in Rotated Sorted Array
  7. MYSQL索引失效的各种情形总结
  8. 绝大部分人根本没有职业素养
  9. 大楼通信综合布线系统_建筑智能化,智能大楼防雷系统设计在综合布线中的重要性...
  10. 怎么用计算机模拟宇宙,为了弄懂宇宙的形成 科学家用电脑模拟了800万个宇宙...
  11. idea建springcloud项目_idea创建springcloud项目图文教程(EurekaServer注册中心)
  12. 【写作技巧】毕业论文写作要素和步骤有哪些呢?
  13. Struts2整合Spring方法及原理
  14. RocketMQ系列实战
  15. 怎么把mysql 查询数据_如何使用查询字符串值从数据库中查询数据
  16. 第十二届蓝桥杯题目和解答(C++B组)省赛
  17. 数据库:order by排序语句的用法
  18. sa登录失败,错误代码18456
  19. 全球与中国高效无气油漆喷涂机市场深度研究分析报告
  20. c语言千位分隔符代码if函数,JavaScript实现千位分隔符

热门文章

  1. 数字技术对就业的影响分析
  2. 果蝇大脑研究能够改进计算机相似性搜索算法
  3. 图灵奖公布:高性能计算先驱、为超算铺平道路的Jack Dongarra获奖
  4. 漫画 | 如果面试时大家都说真话......
  5. 安谋中国发布“玲珑”i3i5 ISP处理器,剑指何方?
  6. 安装模拟器遇到的问题
  7. 2013年蓝桥杯省赛C/C++A组真题解析
  8. [BZOJ 3143][Hnoi2013]游走(高斯消元+期望)
  9. 20170208--正则表达式
  10. Hadoop学习之第七章节:Hive安装配置