Server.MapPath相关

Server.MapPath相关如果你从Page类继承的类中执行这条语句,才可以简单地使用 DataBase=Server.MapPath(“data.mdb”);否则写全命名空间:System.Web.HttpContext.Current.Server.MapPath();总注:Serv

大家好,又见面了,我是你们的朋友全栈君。

如果你从Page类继承的类中执行这条语句,才可以简单地使用 
DataBase = Server.MapPath(“data.mdb”);
否则写全命名空间:System.Web.HttpContext.Current.Server.MapPath();

总注:Server.MapPath获得的路径都是服务器上的物理路径,也就是常说的绝对路径
1、Server.MapPath(“/”)
注:获得应用程序根目录所在的位置,如 C:\Inetpub\wwwroot\。
2、Server.MapPath(“./”)
注:获得所在页面的当前目录,等价于Server.MapPath(“”)。
3、Server.MapPath(“../”)
注:获得所在页面的上级目录。
4、Server.MapPath(“~/”)
注:获得当前应用级程序的目录,如果是根目录,就是根目录,如果是虚拟目录,就是虚拟目录所在的位置,如C:\Inetpub\wwwroot\Example\。

在多线程里面使用HttpContext.Current,HttpContext.Current是得到null的. 
所以在线程调用方法,方法中类里面的System.Web.HttpContext.Current.Server.MapPath() 获取不到对象。

应该这样用:

    public static string MapPath(string strPath)
    {

        if (HttpContext.Current != null)
        {

            return HttpContext.Current.Server.MapPath(strPath);
        }
        else //非web程序引用 
        {

            strPath = strPath.Replace(“/”, “\\”);
            if (strPath.StartsWith(“\\”))
            {

                //strPath = strPath.Substring(strPath.IndexOf(‘\\’, 1)).TrimStart(‘\\’); 
                strPath = strPath.TrimStart(‘\\’);
            }
            return System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, strPath);
        }
    }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158049.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java的局部变量和全局变量_java全局变量和局部变量

    java的局部变量和全局变量_java全局变量和局部变量我们先来看一个比较的例子,最近在知乎看到的帖子。publicclassTestDemo{inta;//类的成员变量publicstaticvoidmain(String[]args){TestDemotd=newTestDemo();//默认的构造方法System.out.println(td.a);…

    2022年8月21日
    5
  • springboot框架流程图_java流程框架

    springboot框架流程图_java流程框架这篇介绍springboot的框架流程控制(Controller)层,负责具体的业务模块流程的控制,也就是去拦截客户发来的请求。然后服务(Service)层,负责业务模块的逻辑应用设计,调用DAO层已定义的接口,去实现Service具体的实现类,也就是去和数据库(DAO)层打交道。Dao(serviceImpl)层负责与数据库进行交互设计,用来处理数据的持久化工作,DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。最后一层View层,负责前台h

    2022年8月21日
    7
  • asp.net(C#)中Repeater嵌套绑定Repeater[通俗易懂]

    asp.net(C#)中Repeater嵌套绑定Repeater[通俗易懂]Repeater嵌套Repeater的结构:一般写过的都能看懂吧privatevoidRpTypeBind(){//GetQuestionTypeAndCount()返回一个datatablethis.rptypelist.DataSource=LiftQuestionCtr.GetQuestionTypeAndCount(

    2022年7月14日
    19
  • 浅谈UML的概念和模型之UML九种图

    浅谈UML的概念和模型之UML九种图

    2021年12月4日
    50
  • wireshark捕获arp包_安卓tcp协议抓包分析教程

    wireshark捕获arp包_安卓tcp协议抓包分析教程使用Wireshark工具抓取ARP协议的数据包,分析ARP协议的地址解析过程、自主学习逻辑以及初次访问和多次访问的区别。

    2025年8月1日
    3
  • Spyder python 多行注释快捷键

    Spyder python 多行注释快捷键Spyderpython 多行注释快捷键多行注释 第一步 选中需要注释的内容第二步 两种选择 ctrl 1 解除注释需要再次选中代码 然后按 ctrl 1 效果 N STATES 15 ACTIONS left right EPSILON 0 9 ALPHA 0 1ctrl 4 块注释 解除注释需要再次选中代码 然后按 ctrl 5 效果

    2025年11月22日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号