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);
        }
    }

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • IDEA中使用eclipse快捷键「建议收藏」

    IDEA中使用eclipse快捷键「建议收藏」1.修改使用Eclipse风格的快捷键目的是习惯了使用eclipse的快捷键,在使用IDEA时不想重头记一套新的快捷键。按照下面的顺序操作File–>settings–>keymap–>在下来框中选中Eclipse选择Apply保存设置这样改完就是elipse风格的快捷方式了2.单独设置一部分比较主要的与eclipse中不一致的操作2

  • required属性的作用_required的作用

    required属性的作用_required的作用1,required属性-表示字段不能为空(注意:只有用户单击“提交”按钮提交表单的时候,浏览器才会执行验证。目前HTML5不支持指定验证的时间,而且验证消息的样式和内容各个浏览器不大一样,不能修

  • Visifire图表控件的使用「建议收藏」

    Visifire图表控件的使用「建议收藏」1.在实际项目开展中,往往会牵扯到需要绘制图表的情况。而Visifire是一个比较美观大方的第三方图表控件,本文会讲述如何初步使用Visifire控件。首先我们需要从Visifire的官方网站下载:http://www.visifire.com/,新建一个项目,引入SLVisifire.Charts.dll。在MainPage.xaml.cs代码中添加代码:usingVisifire.Charts;准备工作做好了,此时我在这里直接编写了一个函数如下://////创建一个图表/////

  • 秒懂,Java 注解 (Annotation)你可以这样学

    秒懂,Java 注解 (Annotation)你可以这样学文章开头先引入一处图片。这处图片引自老罗的博客。为了避免不必要的麻烦,首先声明我个人比较尊敬老罗的。至于为什么放这张图,自然是为本篇博文服务,接下来我自会说明。好了,可以开始今天的博文了。Annotation中文译过来就是注解、标释的意思,在Java中注解是一个很重要的知识点,但经常还是有点让新手不容易理解。我个人认为,比较糟糕的技术文档主要特征之一就是:用专业名词来…

  • GCC命令编译

    GCC命令编译GCC命令

    2022年10月13日
  • Ubuntu下使用4g模块、4G模组上网,USB接口,图形界面

    Ubuntu下使用4g模块、4G模组上网,USB接口,图形界面Ubuntu下4g上网配置。一、接入网卡并查看。ms@ubuntu:~$l/dev/ttyU*/dev/ttyUSB0/dev/ttyUSB1/dev/ttyUSB2/dev/ttyUSB3ms@ubuntu:~$InterfaceDescription:InterfaceDescription DMInterface Diagnoseport NMEAInterface ForGPSNMEAmessageoutput ATI

    2022年10月30日

发表回复

您的电子邮箱地址不会被公开。

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