首页 / ASP.NET / 正文

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

6100 发布于: 2017-03-05 读完约需3分钟

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

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: 微软发布Visual Studio Code(VS Code) 2017年2月更新(版本号1.10)

下一篇: [TsAdmin]--一款开源的基于Vue.js+Element UI的单页无刷新(无iframe)多选项卡的后台管理系统模板

本文永久链接码友网 » [C#]ASP.NET应用程序中Server.MapPath("."),Server.MapPath("~"),Server.MapPath(@"\")的区别

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册