53

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

我怎样才能得到这个?

4

4 回答 4

87
Server.MapPath("~"); 

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

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

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

HttpContext.Current.Server.MapPath("~")
于 2013-07-16T17:12:37.923 回答
44

如果您没有可用的,HttpRuntime.AppDomainAppPathHttpContext很有用。

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

private static string GetDataFilePath() => HttpRuntime.AppDomainAppVirtualPath != null ?
    Path.Combine(HttpRuntime.AppDomainAppPath, "App_Data") :
    Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
于 2013-07-16T17:13:03.280 回答
6

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

一些额外的方法: 获取路径的不同方法

于 2017-08-24T09:02:42.820 回答
4

您可以从 Server.MapPath 方法中获取此信息。

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

于 2013-07-16T17:15:17.103 回答