有人能解释一下Server.MapPath(".")、Server.MapPath("~")、Server.MapPath(@"\")和Server.MapPath("/")之间的区别吗
发布于 2013-07-12 21:49:35
只是在@splattne的答案上做一点扩展:
MapPath(string virtualPath)调用以下代码:
public string MapPath(string virtualPath)
{
return this.MapPath(VirtualPath.CreateAllowNull(virtualPath));
}MapPath(VirtualPath virtualPath)反过来调用MapPath(VirtualPath virtualPath, VirtualPath baseVirtualDir, bool allowCrossAppMapping),它包含以下内容:
//...
if (virtualPath == null)
{
virtualPath = VirtualPath.Create(".");
}
//...因此,如果调用MapPath(null)或MapPath(""),实际上就是在调用MapPath(".")
发布于 2018-01-08 18:49:22
1) Server.MapPath(".") --返回正在执行的文件(例如aspx)的“当前物理目录”。
例如。假设D:\WebApplications\Collage\Departments
2) Server.MapPath("..") --返回“父目录”
例如。D:\WebApplications\Collage
3) Server.MapPath("~") --返回“应用程序根的物理路径”
例如。D:\WebApplications\Collage
4) Server.MapPath("/") --返回域名根的物理路径
例如。C:\Inetpub\wwwroot
https://stackoverflow.com/questions/275781
复制相似问题