如何获取ASP.NET服务器应用程序的根目录?

时间:2013-07-16 17:08:20

标签: asp.net

在我的ASP.NET应用程序的启动代码(即没有请求)中,我需要获取应用程序根目录的路径。我需要这个来打开我在根目录下的文件夹中的文件。

我怎么能得到这个?

4 个答案:

答案 0 :(得分:66)

Server.MapPath("~"); 

将获取当前应用程序的根目录,作为磁盘上的路径。例如,C:\inetpub\...

请注意,~字符也可以用作ASP.NET控件中Web路径的一部分,它将填充应用程序的URL。

如果您的类没有Server属性,则可以使用static

HttpContext.Current.Server.MapPath("~")

答案 1 :(得分:37)

如果您没有HttpContext

HttpRuntime.AppDomainAppPath非常有用。

例如,一个低级库方法来获取相对于当前应用程序的路径,无论它是否是Web应用程序,它都必须工作:

private static string GetDataFilePath() => HttpRuntime.AppDomainAppVirtualPath != null ?
    Path.Combine(HttpRuntime.AppDomainAppPath, "App_Data") :
    Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);

答案 2 :(得分:4)

您可以从Server.MapPath方法获取此内容。

以下是MSDN链接: http://msdn.microsoft.com/en-us/library/ms524632(v=vs.90).aspx

答案 3 :(得分:4)

另一种可能性是 AppDomain.CurrentDomain.BaseDirectory

其他一些方法: Different ways of getting Path