標籤:blog http io 使用 ar sp art on c
如果你從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
轉:Server.MapPath相關