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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Ubuntu | ubuntu下安装edge

    Ubuntu | ubuntu下安装edge本文是关于如何在Ubuntu20.04下安装Edge浏览器的方法。安装目的目前在VMware虚拟机上安装了虚拟机Ubuntu,使用时默认是火狐浏览器,而在Windows下,更多的则是使用Edge或Chrome,因此有很多的收藏和记录在原本的Edge上。于是在Ubuntu上再次安装Edge,并使用同步功能将标签等信息同步过来,这样在两个平台上使用浏览器就更方便了。安装步骤首先打开edge的官网https://www.microsoft.com/zh-cn.

    2022年7月21日
    23
  • MySQL binlog日志格式 binlog_format[通俗易懂]

    MySQL binlog日志格式 binlog_format[通俗易懂]MySQLbinlog日志格式binlog_formatMySQL5.5中对于二进制日志(binlog)有3种不同的格式可选:Mixed,Statement,Row,默认格式是Statement。总结一下这三种格式日志的优缺点。MySQLReplication复制可以是基于一条语句(StatementLevel),也可以是基于一条记录(RowLevel),可以…

    2022年5月31日
    30
  • 四大国内外开源的java工作流程引擎,流程快速开发平台对比分析选型[通俗易懂]

    四大国内外开源的java工作流程引擎,流程快速开发平台对比分析选型[通俗易懂]为了更好的帮助大家找到适合自己的流程引擎,快速的完成流程引擎技术架构选型,快速的完成项目交付我们找到了4个开源的java工作流引擎,一些应用环境对比分析。希望您能从中找到适合您自己的流程引擎。 工作流引擎 Activiti JBossJBPM6.5 JFlow6.0 FixFlo…

    2022年7月8日
    31
  • JVM指令重排[通俗易懂]

    JVM指令重排[通俗易懂]参考http://www.infoq.com/cn/articles/java-memory-model-2/点击打开链接数据依赖性如果两个操作访问同一个变量,且这两个操作中有一个为写操作,此时这两个操作之间就存在数据依赖性。数据依赖分下列三种类型:名称代码示例说明写后读a=1;b=a;写一个变量之后,再读这个位置。写后写a=1;a=2;写一个变量之后,再写这个变量。读后写a=…

    2022年10月18日
    0
  • 面试题 HashMap 数据结构 实现原理

    面试题 HashMap 数据结构 实现原理数据结构HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。数组:数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表:链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。哈希表那

    2022年5月12日
    43
  • TransparentBitmap函数设置透明位图的原理分析

    TransparentBitmap函数设置透明位图的原理分析1、函数的功能:把一张位图设置成透明,不影响背景图的显示,并可改变大小2、函数的思想: (1)以当前的hdc创建5个设备兼容dc(HDC):hMem,hSave,hBack,hObject,hTemp (2)将要透明处理的位图块选入其中一个hTemp,获取宽高,并转换成逻辑点值; (3)创建4个临时位图(HBITMAP):bmMem,bmSave,bmBack,bmObjec

    2022年7月21日
    16

发表回复

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

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