ASP.NET Request.MapPath() 与 Server.MapPath()

  • 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(此时根本不检查第二个参数)
posted @ 2011-08-23 10:43  Empty2011  阅读(1613)  评论(2编辑  收藏  举报