新手问题......
如果我的文件位于网络应用程序的根目录中。我如何以programmaticaly方式查询该文件的路径?即,它在哪个目录?
答案 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("~/");
这应该可以做到!