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

你可能感兴趣的:(WinForm)