Получить текущий каталог в asp.net MVC - PullRequest
16 голосов
/ 22 февраля 2012

Я пытаюсь создать путь к файлу, чтобы прочитать файл XSLT, например так:

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

... где я нахожусь в контроллере (/Controllers/ExampleController.cs), а папка '/ _xslt /' находится на том же уровне, что и '/ Controllers'

Однако, я получаю ошибку:

(System.IO.DirectoryNotFoundException) Не удалось найти часть пути 'c: \ windows \ system32 \ _xslt \ example.xslt'.

Я поступаю неправильно?

Спасибо за любую помощь!

Ответы [ 2 ]

26 голосов
/ 22 февраля 2012

Вы можете использовать HttpServerUtility.MapPath , чтобы отобразить любые относительные пути для вас, в вашем контроллере это легко доступно через ControllerContext:

string path = ControllerContext.HttpContext.Server.MapPath("~/_xslt/example.xslt");
...
3 голосов
/ 22 февраля 2012

Если контроллер находится в корневом каталоге

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

прочее

String path = ControllerContext.HttpContext.Server.MapPath(@"../_xslt/example.xslt");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...