ASP.NET中Request.RawUrl、Request.Url的区别Path.GetFileName、Path.GetExtension、Path.GetDirectoryName

如果访问的地址是:

http://hovertree.com/guestbook/addmessage.aspx?key=hovertree%3C&n=myslider#zonemenu

那么

Request.Url.ToString() 的值是:
http://hovertree.com/guestbook/addmessage.aspx?key=hovertree<&n=myslider 

Request.RawUrl.ToString() 的值是:
/guestbook/addmessage.aspx?key=hovertree%3C&n=myslider

我们可以看出

Request.RawUrl 不包含主机名及前面的内容。

Request.RawUrl 完整地体现地址栏的 QueryString,

而 Request.Url 会进行 Server.URLDecode 解析。

而且两个的相同地方是,都不包含#以及后面的字符串

 

Path.GetFileName

string s1 = Path.GetFileName("D:\\dir\\asp.net\\readme.txt"); // readme.text
string s2 = Path.GetFileName("D:\\dir\\asp.net\\readme."); // readme.
string s3 = Path.GetFileName("D:\\dir\\asp.net\\readme"); // readme
string s4 = Path.GetFileName("D:\\dir\\asp.net\\readme\\"); // 零长度字符串
string s5 = Path.GetFileName("D:\\"); // 零长度字符串
string s6 = Path.GetFileName("D:"); // 零长度字符串

说明:路径中的 \ 和 / 是一样的结果。

只要不是以 \ 或 / 结束,都是当作文件对待(盘符除外)。

Path.GetExtension

string s1 = Path.GetExtension("D:\\dir\\asp.net\\readme.txt"); // .txt
string s2 = Path.GetExtension("D:\\dir\\asp.net\\readme."); // 零长度字符串
string s3 = Path.GetExtension("D:\\dir\\asp.net\\readme"); // 零长度字符串
string s4 = Path.GetExtension("D:\\dir\\asp.net\\readme\\"); // 零长度字符串
string s5 = Path.GetExtension("D:\\"); // 零长度字符串
string s6 = Path.GetExtension("D:"); // 零长度字符串

Path.GetDirectoryName

string s1 = Path.GetDirectoryName("D:\\dir\\asp.net/readme.txt"); // D:\dir\asp.net
string s2 = Path.GetDirectoryName("D:\\dir\\asp.net/readme."); // D:\dir\asp.net
string s3 = Path.GetDirectoryName("D:\\dir\\asp.net/readme"); // D:\dir\asp.net
string s4 = Path.GetDirectoryName("D:\\dir\\asp.net/readme/"); // D:\dir\asp.net\readme
string s5 = Path.GetDirectoryName("D:\\"); // null,注意是 null
string s6 = Path.GetDirectoryName("D:"); // null,注意是 null

这里,我们故意在路径中使用“/”,可以发现最终还是会转换成“\”。

 查看留言:http://hovertree.com/guestbook/

转自:http://keleyi.com/a/bjae/avh3bdvq.htm

技术文章:http://www.cnblogs.com/sosoft/p/kaifajishu.html

上一篇:C# 的 Path.GetFileName、Path.GetExtension、Path.GetDirectoryName千一网络 http://www.itpow.com/


下一篇:Java获取当前类名和方法名