在我的 ASP.NET 应用程序的启动代码(即无请求)中,我需要获取到我的应用程序根目录的路径。我需要这个来打开我在根目录下的文件夹中的文件。
我怎样才能得到这个?
Server.MapPath("~");
将为您获取当前应用程序的根目录,作为磁盘上的路径。例如,C:\inetpub\...
请注意,该~
字符也可以用作 ASP.NET 控件中的 Web 路径的一部分,它将填写应用程序的 URL。
如果你的类没有 Server 属性,你可以使用 static
HttpContext.Current.Server.MapPath("~")
如果您没有可用的,HttpRuntime.AppDomainAppPathHttpContext
很有用。
例如,获取相对于当前应用程序的路径的低级库方法,无论它是否是 Web 应用程序,它都必须工作:
private static string GetDataFilePath() => HttpRuntime.AppDomainAppVirtualPath != null ?
Path.Combine(HttpRuntime.AppDomainAppPath, "App_Data") :
Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
另一种可能性是 AppDomain.CurrentDomain.BaseDirectory
一些额外的方法: 获取路径的不同方法
您可以从 Server.MapPath 方法中获取此信息。
这是 MSDN 链接: http: //msdn.microsoft.com/en-us/library/ms524632 (v=vs.90).aspx