[C#]从URL中获取路径的最简单方法-new Uri(url).AbsolutePath
2024-08-26 20:52:28
今天在写代码时遇到这样一个问题:
如何从字符串 "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;
最新文章
- Linux平台oracle 11g单实例 + ASM存储 安装部署 快速参考
- CentOS 7.1, 7.2 下安装dotnet core
- Hibernate 开发流程
- spring环境搭建需要的插件-------Spring Tool Suite™ Downloads
- StackExchange.Redis.Extensions.Core 源码解读之 Configuration用法
- 【python】异常处理
- 勿在浮沙筑高台-- 关于IT技术学习的一点反思
- LightOj 1096 - nth Term (矩阵快速幂,简单)
- 张小龙的野心:用小程序重构web|小程序好处及可能的不足
- 数列[专杀Splay版]
- METO CODE 223 拉力赛
- 虚拟机 模拟centos 7 系统安装
- MongoDB Redis
- Android MediaPlayer播放项目res/raw和res/assets下的音频文件
- 阿里云ecs 增加虚拟网卡
- vmware centos7 动态ip->;静态
- 获取INET4与INET6的信息
- BoneBlack am335x can0 通讯配置与测试
- 并发编程-synchronized关键字大总结
- python-面向对象-内置方法补充