Server.MapPath()获取本机绝对路径
1. Server.MapPath("/") 应用程序根目录所在的位置 如
C:\Inetpub\wwwroot\
2.Server.MapPath("./") 表示所在页面的当前目录
注:等价于Server.MapPath("") 返回 Server.MapPath("")所在页面的物理文件路径
3.Server.MapPath("../")表示上一级目录
4.Server.MapPath("~/")表示当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置如:
C:\Inetpub\wwwroot\Example\
注:等效于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:\Inetpub\wwwroot\EnglishClub\manage\WebForm1.aspx
C:\Inetpub\wwwroot\
C:\Inetpub\wwwroot\EnglishClub\manage
C:\Inetpub\wwwroot\EnglishClub\manage
C:\Inetpub\wwwroot\EnglishClub\
C:\Inetpub\wwwroot\EnglishClub
---------------------------------------------------------------------
很多的朋友一而再,再而三的在Server.Mappath上卡壳,cnbruce也是一遍两遍地重复,还是不能全部解决,所以通过下面的举例,希望更多的朋友能恍然大悟,透彻明白过来。
先看图:
<%=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”。最后“确定”。
先看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:\inetpub\wwwroot\下面了,那就是因为在"database"前面添加了"/",表示到达根目录,而本地的IIS虚拟根目录就是c:
\inetpub\wwwroot\,这在默认Web站点属性里面有。
首先,要正确清醒地知道conn.asp连接文件和*.mdb数据库文件的地址关系
接着,选择正确的Server.Mappath转换方法
建议,最好不采用"/"路径。因为这涉及到虚拟主机和非虚拟主机的问题。
所谓虚拟主机,比如我本人的站点,其虚拟的根目录就是网站本身的根目录,不存在转向到c:\inetpub\wwwroot\的问题。
可以调试
http://www.cnbruce.com/red/conn.asp
http://www.cnbruce.com/red/blue/conn.asp
可以看出:采用"/"的时候的路径显示就是本站的根地址。
Server.MapPath()获取本机绝对路径的更多相关文章
- Server.MapPath()获取绝对路径
1. Server.MapPath("/") 应用程序根目录所在的位置 如 C:\Inetpub\wwwroot\ 2.Server.MapPath("./&qu ...
- string s = HttpContext.Current.Server.MapPath("");
string s = HttpContext.Current.Server.MapPath(""); 获取当前文件夹路径 而后用相对路径读取图片
- 【转载】ASP.NET中Server.MapPath方法获取网站根目录总结
在ASP.NET网站应用程序中,可以通过Server.MapPath方法来获取跟服务器有关的目录信息,如获取网站的根目录.获取当前代码文件所在的目录路径.获取当前代码所在路径的上级路径等.Server ...
- Server.MapPath()目录详解
最近在做相关的开发,碰到了Server.MapPath(),顺便来温习一下 Server.MapPath()获取网站的目录详解 ./当前目录 /网站主目录 ../上层目录 ~/网站虚拟目录 如果当前 ...
- 转:Server.MapPath相关
如果你从Page类继承的类中执行这条语句,才可以简单地使用 DataBase = Server.MapPath("data.mdb");否则写全命名空间:System.Web.Ht ...
- Server.MapPath查询路径那几件事
主要总结Server.MapPath 这个方法的使用以及使用的场景,不是什么时候都适合使用: 1.实现功能: Server.MapPath能够获取指定URL相对服务器的物理路径,在IIS服务端,能够根 ...
- webapi中取文件的物理路径(server.mappath)
在Webapi中是用不了server.mappath方法的,上网搜索了一下,发现是用如下代码取得文件绝对路径: string logpath = System.Web.Hosting.HostingE ...
- 相对路径 System.Web HttpServerUtilityBase Server.MapPath("~/")
相对路径 System.Web HttpServerUtilityBase Server.MapPath("~/")
- Revit二次开发之获取本机已安装的Revit版本与路径
在revit安装目录下找到 RevitAddInUtility.dll 在项目中引用 使用以下方法 using Autodesk.RevitAddIns; /// <summary> // ...
随机推荐
- DLL项目报错:fatal error lnk1104: cannot open file "...\xxx.dll"
在生成DLL的时候报这个错, 生成不了DLL 检查生成DLL的路径是否有其他程序在使用... 或者把杀毒软件关了试试...
- mac 启动nfsd共享
# cat /etc/exports /Users/guang/jumpserver -maproot=root:wheel -alldirs -rw -network 192.168.244.0 - ...
- EL表达<%@page isELIgnored="false"%>问题
上网查找资料后得知:主要原因是EL表达式无法被解析到. 其实从后台取值并传值到前台来根本就没有错,而前台JSP页面EL表达式无效,解析不到EL表达式,引起的原因是web.xml中: <web-a ...
- zip格式jdk在Linux环境下的安装过程
1下载jdk [root@localhost opt]# cd soft_bak/[root@localhost soft_bak]# lsjdk1.7.0_25.zip postgresql-9.4 ...
- AIR 中的 File 对象 所访问的文件夹位置
AIR 中的 File 对象 所访问的文件夹位置 Link 关于File.cacheDirectory的一点说明 According to the Apple guidelines, data tha ...
- Dropbox能火,为何它的中国同行不能火?
http://tech.163.com/15/0510/11/AP8II63H000915BF.html Dropbox能火,为何它的中国同行不能火? 2015-05-10 11:33:55 来源: ...
- 转:python webdriver API 之操作测试对象
一般来说,所有有趣的操作与页面交互都将通过 WebElement 接口,包括上一节中介绍的对象定位,以及本节中需要介绍的常对象操作.webdriver 中比较常用的操作元素的方法有下面几个: cle ...
- SQL封装、多态与重载
面向对象1.类:众多对象抽象出来的2.对象:类实例化出来的 3.类的定义关键字 class 4.类里面包含成员变量成员属性 成员方法 5.面向对象三大特性(1)封装目的:保护类,让类更加安全.做法:让 ...
- poj: 2255
跟LEETCODE的preorder,inorder转postorder题很像 #include <iostream> #include <stdio.h> #include ...
- URAL 1018 Binary Apple Tree(树DP)
Let's imagine how apple tree looks in binary computer world. You're right, it looks just like a bina ...