Server.MapPath(quot;.quot;), Server.MapPath(quot;~quot;), Server.MapPath(@quot;quot;), Server.MapPath(quot;/quot;). What is the difference?(Server.MapPath(.)、Server.MapPath(~)、Server.MapPath(@)、Server.MapPath(/).有什么区别?)
问题描述
谁能解释一下Server.MapPath(".")
, Server.MapPath("~")
, Server.MapPath(@"")
和 Server.MapPath("/")
?
Can anyone explain the difference between Server.MapPath(".")
, Server.MapPath("~")
, Server.MapPath(@"")
and Server.MapPath("/")
?
推荐答案
Server.MapPath 指定映射到物理目录的相对或虚拟路径.
Server.MapPath specifies the relative or virtual path to map to a physical directory.
Server.MapPath(".")
1 返回正在执行的文件(例如aspx)的当前物理目录Server.MapPath("..")
返回父目录Server.MapPath("~")
返回应用程序根目录的物理路径Server.MapPath("/")
返回域名根的物理路径(不一定和应用的根相同)
Server.MapPath(".")
1 returns the current physical directory of the file (e.g. aspx) being executedServer.MapPath("..")
returns the parent directoryServer.MapPath("~")
returns the physical path to the root of the applicationServer.MapPath("/")
returns the physical path to the root of the domain name (is not necessarily the same as the root of the application)
一个例子:
假设您将网站应用程序 (http://www.example.com/
) 指向
Let's say you pointed a web site application (http://www.example.com/
) to
C:Inetpubwwwroot
并在
D:WebAppsshop
例如,如果您在以下请求中调用 Server.MapPath()
:
For example, if you call Server.MapPath()
in following request:
http://www.example.com/shop/products/GetProduct.aspx?id=2342
然后:
Server.MapPath(".")
1 返回D:WebAppsshopproducts
Server.MapPath("..")
返回D:WebAppsshop
Server.MapPath("~")
返回D:WebAppsshop
Server.MapPath("/")
返回C:Inetpubwwwroot
Server.MapPath("/shop")
返回D:WebAppsshop
Server.MapPath(".")
1 returnsD:WebAppsshopproducts
Server.MapPath("..")
returnsD:WebAppsshop
Server.MapPath("~")
returnsD:WebAppsshop
Server.MapPath("/")
returnsC:Inetpubwwwroot
Server.MapPath("/shop")
returnsD:WebAppsshop
如果 Path 以正斜杠 (/
) 或反斜杠 () 开头,则
MapPath()
返回的路径为如果 Path 是完整的虚拟路径.
If Path starts with either a forward slash (/
) or backward slash (), the
MapPath()
returns a path as if Path was a full, virtual path.
如果 Path 不以斜杠开头,则 MapPath()
返回相对于正在处理的请求的目录的路径.
If Path doesn't start with a slash, the MapPath()
returns a path relative to the directory of the request being processed.
注意:在 C# 中,@
是逐字字面字符串运算符,表示字符串应该按原样"使用,而不是针对转义序列进行处理.
Note: in C#, @
is the verbatim literal string operator meaning that the string should be used "as is" and not be processed for escape sequences.
脚注
Server.MapPath(null)
和Server.MapPath("")
将 也产生这种效果.
Server.MapPath(null)
andServer.MapPath("")
will produce this effect too.
这篇关于Server.MapPath(".")、Server.MapPath("~")、Server.MapPath(@"")、Server.MapPath("/").有什么区别?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Server.MapPath(".")、Server.MapPath("~")、Server.MapPath(@"")、Server.MapPath("/").有什么区别?


- WebMatrix WebSecurity PasswordSalt 2022-01-01
- C# 中多线程网络服务器的模式 2022-01-01
- 输入按键事件处理程序 2022-01-01
- MoreLinq maxBy vs LINQ max + where 2022-01-01
- 如何用自己压缩一个 IEnumerable 2022-01-01
- C#MongoDB使用Builders查找派生对象 2022-09-04
- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01
- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01
- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01