今天在写代码时遇到这样一个问题:
如何从字符串 "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;
本文URL地址:http://www.bianceng.cn/Programming/csharp/201410/45477.htm
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索http
, gif
, 代码
, system
, images
cnblogs
c站、c语言、cf、ch、c罗,以便于您获取更多的相关知识。