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

如何从字符串 "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;

最新文章

  1. Linux平台oracle 11g单实例 + ASM存储 安装部署 快速参考
  2. CentOS 7.1, 7.2 下安装dotnet core
  3. Hibernate 开发流程
  4. spring环境搭建需要的插件-------Spring Tool Suite™ Downloads
  5. StackExchange.Redis.Extensions.Core 源码解读之 Configuration用法
  6. 【python】异常处理
  7. 勿在浮沙筑高台-- 关于IT技术学习的一点反思
  8. LightOj 1096 - nth Term (矩阵快速幂,简单)
  9. 张小龙的野心:用小程序重构web|小程序好处及可能的不足
  10. 数列[专杀Splay版]
  11. METO CODE 223 拉力赛
  12. 虚拟机 模拟centos 7 系统安装
  13. MongoDB Redis
  14. Android MediaPlayer播放项目res/raw和res/assets下的音频文件
  15. 阿里云ecs 增加虚拟网卡
  16. vmware centos7 动态ip->静态
  17. 获取INET4与INET6的信息
  18. BoneBlack am335x can0 通讯配置与测试
  19. 并发编程-synchronized关键字大总结
  20. python-面向对象-内置方法补充

热门文章

  1. java 图片合成文字或者awt包下的对话框引入自定义字体库
  2. CentOS 6及7 丢失root密码解决方案
  3. ThinkPHP foreach标签
  4. Django框架基础知识07-常用查询及表关系的实现
  5. 【BZOJ 1588】[HNOI2002] 营业额统计(Treap)
  6. hadoop上传文件报错
  7. RF新手常见问题总结--(基础篇)
  8. mybatis动态sql foreach的用法
  9. python024 Python3 实例
  10. asp.net mvc数据验证