Get current directory in asp.net mvc

2019-02-08 10:02发布

问题:

I am trying to construct a file path in order to read an XSLT file, like so:

string path = "../_xslt/example.xslt";
StreamReader reader = new StreamReader(path); 

...where I am in a controller (/Controllers/ExampleController.cs), and the '/_xslt/' folder is at the same level as '/Controllers'

However, the error I am getting is:

(System.IO.DirectoryNotFoundException) Could not find a part of the path 'c:\windows\system32\_xslt\example.xslt'.

Am I going about this the wrong way?

Thanks for any help!

回答1:

You can use the HttpServerUtility.MapPath method to map any relative paths for you, in your controller this is easily accessible via the ControllerContext:

string path = ControllerContext.HttpContext.Server.MapPath("~/_xslt/example.xslt");
...


回答2:

If controller is present at directory root

String path = ControllerContext.HttpContext.Server.MapPath(@"~/_xslt/example.xslt");

Else

String path = ControllerContext.HttpContext.Server.MapPath(@"../_xslt/example.xslt");