• Server.MapPath()获取本机绝对路径


    1.    Server.MapPath("/")  应用程序根目录所在的位置 如

    C:Inetpubwwwroot

    2.Server.MapPath("./")  表示所在页面的当前目录
          注:等价于Server.MapPath("")  返回 Server.MapPath("")所在页面的物理文件路径
          3.Server.MapPath("../")表示上一级目录
          4.Server.MapPath("~/")表示当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置如:   

    C:InetpubwwwrootExample
         注:等效于Server.MapPath("~"),即相对路径

    Java代码 :
    string filename=Server.MapPath("./") + @"Web.config";   
    string filename=Server.MapPath("./") + "/Web.config";   
    string filename=Server.MapPath("") + @"Web.config"  

    string filename=Server.MapPath("./") + @"Web.config";

    string filename=Server.MapPath("./") + "/Web.config";

    string filename=Server.MapPath("") + @"Web.config"

    string Server.MapPath(string path)
    ��返回与Web服务器上的指定虚拟路径相对应的物理文件路径。�

    Html代码
    <%=Server.MapPath(Request.ServerVariables["PATH_INFO"])%>  
      
    �<%= Server.MapPath("/")%>  
    ��<%= Server.MapPath("")%>  
    ��<%=Server.MapPath(".")%>  
      
    ��<%= Server.MapPath("../")%>  
    ��<%= Server.MapPath("..")%>��  

    <%=Server.MapPath(Request.ServerVariables["PATH_INFO"])%> 

    ��<%= Server.MapPath("/")%>

    ��<%= Server.MapPath("")%>

    ��<%=Server.MapPath(".")%> 

    ��<%= Server.MapPath("../")%>

    ��<%= Server.MapPath("..")%>�� 
    �以上的代码在http://localhost/EnglishClub/manage/WebForm1.aspx页面
    ��运行结果:
    ��C:InetpubwwwrootEnglishClubmanageWebForm1.aspx
    ��
    ��C:Inetpubwwwroot
    ��C:InetpubwwwrootEnglishClubmanage
    ��C:InetpubwwwrootEnglishClubmanage
    ��
    ��C:InetpubwwwrootEnglishClub
    ��C:InetpubwwwrootEnglishClub

    ---------------------------------------------------------------------

    很多的朋友一而再,再而三的在Server.Mappath上卡壳,cnbruce也是一遍两遍地重复,还是不能全部解决,所以通过下面的举例,希望更多的朋友能恍然大悟,透彻明白过来。
    先看图:
     
      1,首先在本机E盘下面建立red文件夹,夹子内继续建立conn.asp文件,文件内容如下:
    Html代码
    <%=Server.Mappath("database/cnbruce.mdb")%>  
    <%=Server.Mappath("/database/cnbruce.mdb")%>  
    <%=Server.Mappath("../database/cnbruce.mdb")%>  

    <%=Server.Mappath("database/cnbruce.mdb")%>

    <%=Server.Mappath("/database/cnbruce.mdb")%>

    <%=Server.Mappath("../database/cnbruce.mdb")%>
    主要调试三种路径最后显示的结果。
    2,在red文件夹下面建立文件夹database,该夹子内部存放cnbruce.mdb文件。
    所以现在可以很肯定的知道数据库文件的绝对路径是:E:/red/database/cnbruce.mdb
    以上应该没有问题吧,很明白的继续往下看,不明白的赶快学下windows操作系统 -_-!
    3,为了进行比较对照,继续在red文件夹下面建立blue文件夹,该夹子内部存放同样的conn.asp文件

    Html代码
    <%=Server.Mappath("database/cnbruce.mdb")%>  
    <%=Server.Mappath("/database/cnbruce.mdb")%>  
    <%=Server.Mappath("../database/cnbruce.mdb")%>  

    <%=Server.Mappath("database/cnbruce.mdb")%>

    <%=Server.Mappath("/database/cnbruce.mdb")%>

    <%=Server.Mappath("../database/cnbruce.mdb")%>

     
    4,当然很重要的就是对red文件夹进行虚拟目录的设定。方法是在red文件夹上右键鼠标,选择“共享...”,弹出窗口中继续选择“Web共享”标签,选择“共享这个文件夹”,别名设为“red”。最后“确定”。
     
     
    5,OK,现在就可以来调试两个conn.asp文件了。
    先看red文件夹下面的,输入的URL应该是:
    http://localhost/red/conn.asp
     
     
     
    观看结果可以知道其中只有一个正确,那就是
    <%=Server.Mappath("database/cnbruce.mdb")%>
    6,再来看red文件夹下的blue文件夹内的,URL:
    http://localhost/red/blue/conn.asp
     
    观察结果,仍然有一个正确,那就是
    <%=Server.Mappath("../database/cnbruce.mdb")%>
    7,来总结下:为什么两次显示正确路径的不是同一代码呢?
    很显然是相对路径的缘故。red文件夹下的conn.asp文件和database文件夹是兄弟关系,所以要找到cnbruce.mdb,就可以直接database/cnbruce.mdb
    而blue文件夹下的conn.asp和database文件夹是侄叔关系,要找cnbruce.mdb,当然是../database/cnbruce.mdb,其中../就是到上一层。
    8, 那再看<%=Server.Mappath("/database/cnbruce.mdb")%>两次显示的都是一样的效果,都指向到 c:inetpubwwwroot下面了,那就是因为在"database"前面添加了"/",表示到达根目录,而本地的IIS虚拟根目录就是c: inetpubwwwroot,这在默认Web站点属性里面有。
     
     
    9,注意,再看!一直都是在本地的,那上传到网络上有是怎么样呢?
    首先,要正确清醒地知道conn.asp连接文件和*.mdb数据库文件的地址关系
    接着,选择正确的Server.Mappath转换方法
    建议,最好不采用"/"路径。因为这涉及到虚拟主机和非虚拟主机的问题。
    所谓虚拟主机,比如我本人的站点,其虚拟的根目录就是网站本身的根目录,不存在转向到c:inetpubwwwroot的问题。
    可以调试
    http://www.cnbruce.com/red/conn.asp
    http://www.cnbruce.com/red/blue/conn.asp
    可以看出:采用"/"的时候的路径显示就是本站的根地址。
     
  • 相关阅读:
    CompositeConfiguration的用法
    Intellij IDEA连接Git@OSC
    Spring4.1.6 标签注解大全以及解释
    React制作吸顶功能总结
    总结常见的ES6新语法特性。
    12个常规前端面试题及小结
    JavaScript 扩展运算符
    Promise,Generator(生成器),async(异步)函数
    Vue中过度动画效果应用
    vue的双向绑定原理及实现
  • 原文地址:https://www.cnblogs.com/seasonzone/p/4971374.html
Copyright © 2020-2023  润新知