使用此代码:
HttpContext.Current.Server.MapPath("~")
详细参考:
Server.MapPath
指定映射到物理目录的相对或虚拟路径。
Server.MapPath(".")
返回正在执行的文件(例如 aspx)的当前物理目录
Server.MapPath("..")
返回父目录
Server.MapPath("~")
返回应用程序根目录的物理路径
Server.MapPath("/")
返回域名根目录的物理路径(不一定和应用的根目录相同)
一个例子:
假设您将一个网站应用程序 ( http://www.example.com/ ) 指向
C:\Inetpub\wwwroot
并在
D:\WebApps\shop
例如,如果您调用Server.MapPath
以下请求:
http://www.example.com/shop/products/GetProduct.aspx?id=2342
然后:
Server.MapPath(".") returns D:\WebApps\shop\products
Server.MapPath("..") returns D:\WebApps\shop
Server.MapPath("~") returns D:\WebApps\shop
Server.MapPath("/") returns C:\Inetpub\wwwroot
Server.MapPath("/shop") returns D:\WebApps\shop
如果 Path 以正斜杠 (/) 或反斜杠 () 开头,则该MapPath
方法返回一个路径,就好像 Path 是一个完整的虚拟路径一样。
如果 Path 不以斜杠开头,则该MapPath
方法返回相对于正在处理的请求的目录的路径。
注意:在 C# 中,@ 是逐字字面字符串运算符,这意味着该字符串应该“按原样”使用,而不是针对转义序列进行处理。
脚注
Server.MapPath(null)
也会Server.MapPath("")
产生这种效果。