如何检索ASP.NET MVC应用程序的目录?

时间:2008-10-17 03:12:58

标签: asp.net-mvc

新手问题......

如果我的文件位于网络应用程序的根目录中。我如何以programmaticaly方式查询该文件的路径?即,它在哪个目录?

4 个答案:

答案 0 :(得分:2)

System.Web.HttpServerUtility.MapPath( "~/filename.ext" );

将为您提供物理(磁盘)路径,您将使用System.IO方法等。

System.Web.Hosting.VirtualPathUtility.ToAbsolute( "~/filename.ext" );

将为您提供“绝对”虚拟路径。这不是完整的URL,但也不一定是域的根。它可能像

/admin/filename.ext

如果应用程序植根于子目录中。

答案 1 :(得分:0)

接近我想要的.....除了在我调用它的上下文中似乎没有编译或无效。

但是我通过System.Web.HttpRuntime.AppDomainAppPath找到了我需要的东西

答案 2 :(得分:0)

如果你在ASPX标记中,你可以突破到C#并使用ResolveUrl方法,如下所示:

<%= Page.ResolveUrl("~/PathFromRoot/YourFile.pdf") %>

答案 3 :(得分:0)

老问题,我知道,但我在寻找类似答案时找到了它。除非API已经改变,否则harpo的答案不起作用的原因是因为MapPath是实例方法,而不是静态方法。但不要害怕 - 在HttpServerUtility - Controller属性的每个实例中都存在Server的实例。所以在你的情况下,如果你在一个控制器内(或者,我怀疑,一个观点):

var appRoot = Server.MapPath("~/");

这应该可以做到!