C#中 Server.MapPath 方法的几个注意点 - [开发记录]

 

简介:

    1.Server.MapPath 所获得的路径都是服务器上的物理路径,也就是常说的绝对路径。

    2.全名: System.Web.HttpContext.Current.Server.MapPath

注意点:

    1、Server.MapPath("/") :获得应用程序根目录所在的位置,如 C:\Inetpub\wwwroot\。
    2、Server.MapPath("./") : 获得所在页面的当前目录,等价于 Server.MapPath("")。
    3、Server.MapPath("../") : 获得所在页面的上级目录
    4、 Server.MapPath("~/") : 获得当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置,如C:\Inetpub\wwwroot\Example\。

 问题

如果你从Page类(创建.aspx的Page页时代码文件.aspx.cs)继承的类中执行这条语句,才可以简单地使用 DataBase = Server.MapPath("data.mdb"); 否 则写全命名空间:System.Web.HttpContext.Current.Server.MapPath();

注意:如果是在一个类库下 的一个类中、要先添加引入(在bin目录右键,添加引用)using System.Web;因为新建一个类库时默认是不引入using (通过Server.MapPath()可以获取文件的绝对路径。

 如果你从Page类继承[ji cheng]的类中执行[zhi hang]这条语句[yu ju],才可以简单地使用
DataBase = Server.MapPath("data.mdb");
否则写全命名空间[kong jian][ming ming kong jian]:System.Web.HttpContext.Current.Server.MapPath();
注意:如果是在一个类库[lei ku]下的一个类中、要先添加引入using System.Web;因为新建一个类库[lei ku]时默认[mo ren]是不引入using System.Web的!

 

示例

对于下列示例,文件 data.txt 和包含下列脚本的 test.asp 文件都位于目录 C:\Inetpub\Wwwroot\Script 下。C:\Inetpub\Wwwroot 目录被设置为服务器的宿主目录。

下列示例使用服务器变量 PATH_INFO 映射当前文件的物理路径。脚本

<%= server.mappath(Request.ServerVariables("PATH_INFO"))%><BR>
 

输出

c:\inetpub\wwwroot\script\test.asp<BR>
 

由于下列示例中的路径参数不是以斜杠字符开始的,所以它们被相对映射到当前目录,此处是 C:\Inetpub\Wwwroot\Script。脚本

<%= server.mappath("data.txt")%><BR>
<%= server.mappath("script/data.txt")%><BR>
 

输出

c:\inetpub\wwwroot\script\data.txt<BR>
c:\inetpub\wwwroot\script\script\data.txt<BR>
 

接下来的两个示例使用斜杠字符指定返回的路径应被视为在服务器的完整虚拟路径。脚本

<%= server.mappath("/script/data.txt")%><BR>
<%= server.mappath("\script")%><BR>
 

输出

c:\inetpub\script\data.txt<BR>
c:\inetpub\script<BR>
 

下列示例演示如何使用正斜杠 (/) 或反斜杠 (\) 返回宿主目录的物理路径。脚本

<%= server.mappath("/")%><BR>
<%= server.mappath("\")%><BR>
 

输出

c:\inetpub\wwwroot<BR>
c:\inetpub\wwwroot<BR>

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值