[C#]ASP.NET应用程序中Server.MapPath("."),Server.MapPath("~"),Server.MapPath(@"\")的区别

ASP.NET 2017-03-05 98阅读 0评论 0收藏 收藏本文

the-differences-between-server-mappath-server-mappath

在看文章前,你是否能够说以下四个Server.MapPath方法取出来的路径分别是什么吗?

  • Server.MapPath(".")
  • Server.MapPath("~")
  • Server.MapPath(@"\")
  • Server.MapPath("/")

在弄清楚这四个路径之前,我们先前熟悉一下:什么是Server.MapPath? Server.MapPath是ASP.NET[C#]开发框架中用于将指定相对或者虚拟路径转换为对应物理目录的一个内部方法,Server.MapPath方法根据参数不同,会返回不同的物理路径,如上面四个参数:

  • Server.MapPath("."):返回当前访问文件的物理路径;
  • Server.MapPath(".."):返回父目录;
  • Server.MapPath("~"):返回当前应用程序的物理路径的根目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置;
  • Server.MapPath("/"):返回当前域名的物理路径的根目录

比如:假设您指定了一个网站应用程序:http://www.example.com/,物理磁盘的位置在:

C:\Inetpub\wwwroot

并且安装了一个商店应用程序(子网站作为IIS中的虚拟目录,并标记为应用程序)

D:\WebApps\shop

现在,比如有如下的访问请求:

http://www.example.com/shop/products/GetProduct.aspx?id=2342

我们使用Server.MapPath()方法:

  • Server.MapPath(".") 返回 D:\WebApps\shop\products
  • Server.MapPath("..") 返回 D:\WebApps\shop
  • Server.MapPath("~") 返回 D:\WebApps\shop
  • Server.MapPath("/") 返回 C:\Inetpub\wwwroot
  • Server.MapPath("/shop") 返回 D:\WebApps\shop

转载请注明:图享网 » [C#]ASP.NET应用程序中Server.MapPath("."),Server.MapPath("~"),Server.MapPath(@"\")的区别

文章评论

获取验证码