WebForm和WinForm通用的取当前根目录的方法
这里需要注意的就是,如果是在Global.asax中添加计时器,在计时器的处理程序中就不能用Server.MapPath获得网站根目录了。
public static string BasePath
{
get
{
System.Diagnostics.Process p = System.Diagnostics.Process.GetCurrentProcess();
//WebDev.WebServer visual studio web server
//xxx.vhost Winform
//w3wp IIS7
//aspnet_wp IIS6
string processName = p.ProcessName.ToLower();
if (processName == "aspnet_wp" || processName == "w3wp" || processName == "webdev.webserver")
{
if (System.Web.HttpContext.Current != null)
return System.Web.HttpContext.Current.Server.MapPath("~/").TrimEnd(new char[] { '\\' });
else //当控件在定时器的触发程序中使用时就为空
{
return System.AppDomain.CurrentDomain.BaseDirectory.TrimEnd(new char[] { '\\' });
}
}
else
{
return System.Windows.Forms.Application.StartupPath;
}
}
}
{
get
{
System.Diagnostics.Process p = System.Diagnostics.Process.GetCurrentProcess();
//WebDev.WebServer visual studio web server
//xxx.vhost Winform
//w3wp IIS7
//aspnet_wp IIS6
string processName = p.ProcessName.ToLower();
if (processName == "aspnet_wp" || processName == "w3wp" || processName == "webdev.webserver")
{
if (System.Web.HttpContext.Current != null)
return System.Web.HttpContext.Current.Server.MapPath("~/").TrimEnd(new char[] { '\\' });
else //当控件在定时器的触发程序中使用时就为空
{
return System.AppDomain.CurrentDomain.BaseDirectory.TrimEnd(new char[] { '\\' });
}
}
else
{
return System.Windows.Forms.Application.StartupPath;
}
}
}