在我的ASP.NET应用程序的启动代码(即没有请求)中,我需要获取应用程序根目录的路径。我需要这个来打开我在根目录下的文件夹中的文件。
我怎么能得到这个?
答案 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