- Request.MapPath():将指定的虚拟路径映射到物理路径。参数:当前请求的虚拟路径(绝对路径或相对路径)。
- Server.MapPath():返回与 Web 服务器上的指定虚拟路径相对应的物理文件路径。参数: Web 服务器的虚拟路径。
- 返回值:由虚拟路径映射到的服务器物理路径。注意:只是映射,并不一定就存在。
- 特殊参数:
-
// 当前目录(./) 此处参数为点和空串效果相同。 E:\解决方案\项目\zz\qq Request.MapPath(./qq); Server.MapPath(./qq); Request.MapPath(qq); Server.MapPath(qq); // 上级目录(../) 如果已经是根则会抛异常。 E:\解决方案\项目\qq Request.MapPath(../qq); Server.MapPath(../qq); // 服务器根(/) C:\inetpub\wwwroot\qq Request.MapPath(../qq); Server.MapPath(../qq); // 虚拟目录根(~/) E:\解决方案\项目\qq Request.MapPath(~/qq); Server.MapPath(~/qq);
-
- 区别:目前没有发现区别,遇到的时候再补,有遇到的也可以给我留言。
- 附:Request.MapPath() 重载方法:
- 参数:
- virtualPath:当前请求的虚拟路径(绝对路径或相对路径)。
- baseVirtualDir:用于相对解析的虚拟基目录路径。
- allowCrossAppMapping:true 表示 virtualPath 可能属于另一个应用程序;否则,为 false。
- 返回:服务器上的物理路径。
- 说明:以第二个参数为相对目录,然后开始映射第一个参数
- 注意:
- 第一个参数不能以 / 或 ~/ 开始,此时第二个参数无效。
- 第二个参数不能为相对路径,即必须以 / 或 ~/ 开始。
- 如果第三个参数为 False,则第二个参数必须以 ~/ 开始。
- 示例:
-
Request.MapPath(qq, ~/zz, false); // E:\解决方案\项目\zz\qq Request.MapPath(qq, /zz, true); // C:\inetpub\wwwroot\zz\qq Request.MapPath(/qq, /zz, true); // C:\inetpub\wwwroot\qq(此时根本不检查第二个参数)
-
- 参数: