博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
转:Server.MapPath相关
阅读量:4925 次
发布时间:2019-06-11

本文共 1089 字,大约阅读时间需要 3 分钟。

如果你从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);
        }
    }

http://blog.csdn.net/lego2816/article/details/6781677

 

转载于:https://www.cnblogs.com/ynzu/p/3998936.html

你可能感兴趣的文章
Spring 简单读取文件
查看>>
简单的web三层架构系统【第三版】
查看>>
EasyUI - Tabs
查看>>
PHP - 数组
查看>>
POJ 动态规划(2)
查看>>
面向对象设计模式的核心法则
查看>>
Windows 8 动手实验系列教程 实验4:应用栏和媒体捕获
查看>>
行为驱动开发: Cucumber的目录结构和执行过程 (转载)
查看>>
Shiro学习详解
查看>>
6最小公倍数和最大公约数的计算(未完期待)
查看>>
创建UITabBarController
查看>>
Kotlin学习记录3
查看>>
C#版本和.NET版本以及VS版本的对应关系
查看>>
单调栈与单调队列
查看>>
go 切片
查看>>
注册维))基))百))科))
查看>>
eclipse 中手动安装 subversive SVN
查看>>
react常用语法
查看>>
【json的使用】
查看>>
ural 1519 Formula 1(插头dp)
查看>>