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)
上一篇 2022年7月12日 上午11:36
下一篇 2022年7月12日 上午11:36


相关推荐

  • localdatetime 转 date_datetime.date.today()

    localdatetime 转 date_datetime.date.today()Date与Java8的时间之间的相互转换必须通过一个中间类Instant。importjava.time.*;importjava.util.Date;/***日期转换工具类**@authorLenovo*/publicclassDateUtil{publicstaticLocalDateTimedate2LocalDateTime(Datedate){//returndate.toInstant().atZone(Zo

    2026年4月16日
    6
  • 2014年度总结

    2014年度总结2015都过了近1个月了,早该好好总结一下了。   2014年,对我来说,意味着忙乱、匆促、迷惑、徘徊,还有最准确的表达:抉择!   还是老规矩,分别从生活、工作、学习三个维度来回顾。  【生活篇】   (1)陪伴妻儿     看着儿子一天天长大,仿佛每一天都有新的变化:从可以走路,到能说完整的句子,每一个关键事件,都让我和老婆欣喜不已!当

    2022年7月12日
    20
  • PyCharm 和 VScode 我更适合用哪个?

    PyCharm 和 VScode 我更适合用哪个?Pycharm 和 vscode 哪个更适合自己呢 在 Mac 上单从软件的大小来看 PyCharm1 5G VScode265M 所以 VS 用着更轻巧 灵活 没有那么臃肿 不管是在打开的一瞬间 还是在处理一些程序的运行都显得更得心应手 PyCharm 在导入一些类的时候 可以在软件集成的列表里直接去输入名字即可下载 从而建立需要的 python 环境 这一点比较方便省心 VS 最好的方式是自己搭建 Anconda 在 conda 中去搭建

    2026年3月27日
    2
  • bitnami redmine mysql_Bitnami Redmine 安装笔记

    bitnami redmine mysql_Bitnami Redmine 安装笔记http atian25 iteye com blog 简介 1 redmine 的介绍不想多说 自己 google 吧 项目管理工具 2 bitnami 专业为开源软件包装 把好的开源软件友好地呈现给用户 他们提供的安装包可谓是真正的 傻瓜式 一站式 安装包 即使不同技术的人也可以根据安装向导 下一步 gt 安装 gt 完成 成功安装 这

    2026年3月18日
    2
  • TPS、QPS和系统吞吐量的区别和理解

    TPS、QPS和系统吞吐量的区别和理解一 QPS TPSQPS QueriesPerSe 意思是 每秒查询率 是一台服务器每秒能够相应的查询次数 是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准 TPS 是 Transactions 的缩写 也就是事务数 秒 它是软件测试结果的测量单位 一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程 客户机在发送请求时开始计时 收到服务器响

    2026年3月26日
    2
  • painless数字类型转换_笔记四十五: Ingest Pipeline 与 Painless Script

    需求:修复与增强写入的数据Tags字段中,逗号分割的文本应该是数组,而不是一个字符串需求:后期需要对Tags进行Aggregation统计IngestNodeElasticsearch5.0后,引入的一种新的节点类型。默认配置下,每个节点都是IngestNode具有预处理数据的能力,可拦截Index或者BulckAPI的请求对数据进行转换,并重新返回给Index和…

    2022年4月8日
    60

发表回复

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

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