Server.MapPath(“。”),Server.MapPath(“〜”),Server.MapPath(@“\”),Server.MapPath(“/”)。有什么不同? [英] Server.MapPath("."), Server.MapPath("~"), Server.MapPath(@"\"), Server.MapPath("/"). What is the difference?
问题描述
任何人都可以解释 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(。)
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.exampl e.com /
)to
Let's say you pointed a web site application (http://www.example.com/
) to
C:\Inetpub\wwwroot
并将您的商店应用程序(IIS中的虚拟目录作为应用程序标记为IIS)安装在
and installed your shop application (sub web as virtual directory in IIS, marked as application) in
D:\WebApps\shop
例如,如果在以下请求中调用 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:\WebApps\shop\products
-
Server.MapPath(..)
返回D:\WebApps\shop
-
Server.MapPath(〜)
返回D:\WebApps\shop
-
Server.MapPath(/)
返回C:\Inetpub\wwwroot
-
Server.MapPath(/ shop)
返回D:\WebAp ps \shop
Server.MapPath(".")
1 returnsD:\WebApps\shop\products
Server.MapPath("..")
returnsD:\WebApps\shop
Server.MapPath("~")
returnsD:\WebApps\shop
Server.MapPath("/")
returnsC:\Inetpub\wwwroot
Server.MapPath("/shop")
returnsD:\WebApps\shop
如果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.
如果路径不以斜线开头,则 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(“/”)。有什么不同?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!