<1>
在一般应用程序中使用server.MapPath 需要HttpContext.Current.Server.MapPath("c:/1.txt");这样写
而在一般应用程序中使用Request.MapPath 只有context.Request.MapPath("c:/t.txt");这样就可以了。他们两个的效果是一样的,都是将虚拟路径转换成物理路径
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class 文件1_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
//将虚拟路径转换成磁盘上的物理路径: 输出:F:\我的资料库\WebSites\文件1\Default1.aspx 注:物理路径指的是某一台计算机本地的路径,以盘符开头
//Response.Write(Server.MapPath("~/文件1/Default1.aspx"));
//将"~/文件1/Default1.aspx"这个虚拟路径转换成应用程序的绝对路径:输出:/WebSites/文件1/Default1.aspx 注:在广域网中,以http开头的链接都是绝对路径
Response.Write(VirtualPathUtility.ToAbsolute("~/文件1/Default1.aspx"));
//将"~/文件1/Default1.aspx"这个虚拟路径转换成相对路径:输出:~/文件1/Default1.aspx
//Response.Write(VirtualPathUtility.ToAppRelative("~/文件1/Default1.aspx"));
//返回虚拟路径的目录部分:输出:~/文件1/
//Response.Write(VirtualPathUtility.GetDirectory("~/文件1/Default1.aspx"));
//检索虚拟路径引用的文件的扩展名:输出:.aspx
//Response.Write(VirtualPathUtility.GetExtension("~/文件1/Default1.aspx"));
// 检索虚拟路径中引用的文件的文件名:输出:Default.aspx
//Response.Write(VirtualPathUtility.GetFileName("~/文件1/Default1.aspx"));
//返回一个布尔值,该值指示指定的虚拟路径是否为绝对路径,也就是以正斜杠 (/) 开头: 输出:False
//Response.Write(VirtualPathUtility.IsAbsolute("~/文件1/Default1.aspx"));
//返回一个布尔值,该值指示指定的虚拟路径是否为相对于应用程序的相对路径: 输出:True
//Response.Write(VirtualPathUtility.IsAppRelative("~/文件1/Default1.aspx"));
//返回从一个包含根操作符(代字号 [~])的虚拟路径到另一个此类虚拟路径的相对虚拟路径: 输出: ../%E6%96%87%E4%BB%B62/Default2.aspx 注:【%E6%96%87%E4%BB%B62】其实就是"文件2"的意思,通过下面的解码可以看到效果
//Response.Write(VirtualPathUtility.MakeRelative("~/文件1/Default1.aspx", "~/文件2/Default2.aspx"));
//Response.Write(Server.UrlDecode("~/文件1/Default1.aspx"));
//Response.Write(Server.UrlDecode(VirtualPathUtility.MakeRelative(Server.UrlDecode("~/文件1/Default1.aspx"), Server.UrlDecode("~/文件2/Default2.aspx")))); //输出: ../文件2/Default2.aspx
// 将正斜杠 (/) 追加到虚拟路径的末尾(如果尚不存在正斜杠,如果已经存在就不用加了): 输出:~/文件1/Default1.aspx/
//Response.Write(VirtualPathUtility.AppendTrailingSlash("~/文件1/Default1.aspx"));
//从虚拟路径去除末尾的正斜杠 (/): 输出:~/文件1/Default1.aspx
//Response.Write(VirtualPathUtility.RemoveTrailingSlash("~/文件1/Default1.aspx/"));
}
}