tags:

views:

219

answers:

3

Newbie question...

If I have a file that is in the root of the web app. How do I programmaticaly query the path of that file? ie, what directory it is in?

+2  A: 
System.Web.HttpServerUtility.MapPath( "~/filename.ext" );

will give you the physical (disk) path, which you would use with System.IO methods and such.

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

will give you the "absolute" virtual path. This won't be the full url, but isn't necessarily the root of the domain, either. It could be something like

/admin/filename.ext

if the application is rooted in a subdirectory.

harpo
A: 

was close to what I was wanting..... except that didn't seem to compile or wasn't valid in the context I was calling it.

However I found what I needed with System.Web.HttpRuntime.AppDomainAppPath

Keith Nicholas
Ah. That should be equivalent to HttpServerUtility.MapPath( "~" )
harpo
If I use that, I get...Error 1 An object reference is required for the non-static field, method, or property 'System.Web.HttpServerUtility.MapPath(string)'
Keith Nicholas
That's odd. Where are you calling it from?
harpo
A: 

If you are in your ASPX markup you can break out to C# and use the ResolveUrl method like so:

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