(越辰家政软件部整理)几种方法如下: 非Web程序
1.AppDomain.CurrentDomain.BaseDirectory //浏览器安装路径
2.Environment.CurrentDirectory
3.HttpRuntime.BinDirectory
The path to the current application's/bin directory.
Web程序
HttpCurrent.Context.Server.Mappath();
---------------------------------------------------------------
HttpContext.Current
返回当前请求的 HttpContext 对象。如此我们就可以直接访问Request、Response、Session、Application等对象,和Page中访问等同。 我们无需再将Page用参数的方式传递到我们的类库对象中。
HttpContext.Current.Session["name"] = "猪八戒"; string name = HttpContext.Current.Request.Param["name"]; HttpContext.Current.Response.Write("猪八戒好吃懒做!");
HttpRuntime
为当前应用程序提供一组 ASP.NET 运行时服务。我们可以通过这个类获得当前ASP.NET工程的一些信息。
HttpRuntime.AppDomainAppVirtualPath : 项目虚拟路径 HttpRuntime.AppDomainAppPath : 项目物理路径 HttpRuntime.BinDirectory : BIN目录物理路径 HttpRuntime.ClrInstallDirectory : CLR安装路径(可以用来获取CLR版本号)
Response.Write(string.Format("AppDomainAppId: {0}<br>", HttpRuntime.AppDomainAppId)); Response.Write(string.Format("AppDomainAppPath: {0}<br>", HttpRuntime.AppDomainAppPath)); Response.Write(string.Format("AppDomainAppVirtualPath: {0}<br>", HttpRuntime.AppDomainAppVirtualPath)); Response.Write(string.Format("AppDomainId: {0}<br>", HttpRuntime.AppDomainId)); Response.Write(string.Format("AspInstallDirectory: {0}<br>", HttpRuntime.AspInstallDirectory)); Response.Write(string.Format("BinDirectory: {0}<br>", HttpRuntime.BinDirectory)); Response.Write(string.Format("ClrInstallDirectory: {0}<br>", HttpRuntime.ClrInstallDirectory)); Response.Write(string.Format("CodegenDir: {0}<br>", HttpRuntime.CodegenDir)); Response.Write(string.Format("IsOnUNCShare: {0}<br>", HttpRuntime.IsOnUNCShare.ToString())); Response.Write(string.Format("MachineConfigurationDirectory: {0}<br>", HttpRuntime.MachineConfigurationDirectory));
输出: AppDomainAppId: /LM/W3SVC/1/Root/Learn.Test.Web AppDomainAppPath: D:\System\My Documents\Visual Studio Projects\Learn.Test\Learn.Test.Web\ AppDomainAppVirtualPath: /Learn.Test.Web AppDomainId: /LM/W3SVC/1/Root/Learn.Test.Web-9-127652564154400560 AspInstallDirectory: C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 BinDirectory: D:\System\My Documents\Visual Studio Projects\Learn.Test\Learn.Test.Web\bin\ ClrInstallDirectory: c:\windows\microsoft.net\framework\v1.1.4322 CodegenDir: C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\learn.test.web\41680132\7c880883 IsOnUNCShare: False MachineConfigurationDirectory: c:\windows\microsoft.net\framework\v1.1.4322\Config
HostingEnvironment
string siteName = HostingEnvironment.SiteName; string appPath = HostingEnvironment.ApplicationVirtualPath; string phyPath = HostingEnvironment.ApplicationPhysicalPath; string adminPath = HostingEnvironment.MapPath("~/Admin");
ApplicationManager.GetApplicationManager().ShutdownApplication(HostingEnvironment.ApplicationID);
灵活运用技巧:
当使用非WEB程序或使用异步调用时,想要取得根目录下的某目录可以使用如下代码:
HttpRuntime.BinDirectory + "../目录名";
|