例如获取网站根目录下的./log/目录,可使用一下三种方法:
string Target_Path = System.Web.HttpContext.Current.Server.MapPath("~/log/");
string Target_Path = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "log");
string Target_Path = System.Web.Hosting.HostingEnvironment.MapPath("~/log/");
依赖System.Web.HttpContext会导致在没有HttpContext的线程中报错,例如在Global或异步任务中。
对于控制台程序来说,AppDomain.CurrentDomain.BaseDirectory指的是程序运行目录,而对于ASP.NET项目来说,AppDomain.CurrentDomain.BaseDirectory会被自动改为网站根目录,而非./bin/目录,所以,它也可以用来获取网站根目录。
第三种是不依赖HttpContext的,作用和第一种一样,适合在后台任务、异步任务中使用。


