asp.net - 服务器.MapPath ("."),服务器.MapPath ("~"),服务器.MapPath(@"\"),服务器.MapPath ("/")。有什么不同?

标签 asp.net path directory mapping filesystems

谁能解释一下 Server.MapPath(".")Server.MapPath("~")Server.MapPath(@"之间的区别\")Server.MapPath("/")

最佳答案

Server.MapPath 指定要映射到物理目录的相对路径或虚拟路径。

  • Server.MapPath(".")1 返回正在执行的文件(例如 aspx)的当前物理目录
  • Server.MapPath("..") 返回父目录
  • Server.MapPath("~") 返回应用程序根目录的物理路径
  • Server.MapPath("/") 返回域名根的物理路径(不一定与应用程序的根相同)

示例:

假设您将一个网站应用程序 (http://www.example.com/) 指向

C:\Inetpub\wwwroot

并在

中安装了您的商店应用程序(子网站作为 IIS 中的虚拟目录,标记为应用程序)
D:\WebApps\shop

例如,如果您在以下请求中调用Server.MapPath():

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

然后:

  • Server.MapPath(".")1 返回 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

如果 Path 以正斜杠 (/) 或反斜杠 (\) 开头,则 MapPath() 返回路径为如果 Path 是完整的虚拟路径。

如果 Path 不以斜杠开头,则 MapPath() 返回相对于正在处理的请求目录的路径。

注意:在 C# 中,@ 是逐字文字字符串运算符,这意味着该字符串应“按原样”使用,而不是针对转义序列进行处理。

脚注

  1. Server.MapPath(null)Server.MapPath("")produce this effect too .

关于asp.net - 服务器.MapPath ("."),服务器.MapPath ("~"),服务器.MapPath(@"\"),服务器.MapPath ("/")。有什么不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/275781/

相关文章:

ruby - Ruby 脚本可以告诉它在哪个目录中吗?

ASP.NET MVC4 session 状态存储用户名

r - 将字符列表传递到 R 中的 file.path

asp.net - 使用 AJAX 发布 Asp.net 表单

Python:排序的文件列表

c# - 如何获取工作目录?

java - 使用 .getClassLoader().getResource() 从目录加载所有文件

java - Android 中的 FileUriExposedException

c# - 在 ExtDateOnly 中禁用日期

c# - 如何在 C#.NET 3.5 中检查对象是否为空?