Получить текущий каталог в asp.net mvc
Я пытаюсь создать путь к файлу для чтения файла 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'.
Я поступаю неправильно?
Спасибо за любую помощь!
Ответы
Ответ 1
Вы можете использовать метод HttpServerUtility.MapPath для сопоставления любых относительных путей для вас, в вашем контроллере это легко доступно через ControllerContext
:
string path = ControllerContext.HttpContext.Server.MapPath("~/_xslt/example.xslt");
...
Ответ 2
Если контроллер присутствует в корне каталога
String path = ControllerContext.HttpContext.Server.MapPath(@"~/_xslt/example.xslt");
Else
String path = ControllerContext.HttpContext.Server.MapPath(@"../_xslt/example.xslt");
Ответ 3
string TestX()
{
string path = AppDomain.CurrentDomain.BaseDirectory; // You get main rott
string dirc = ""; // just var for use
string[] pathes = Directory.GetDirectories(path); // get collection
foreach (string str in pathes)
{
if (str.Contains("NameYRDirectory")) // paste yr directory
{
dirc = str;
}
}
return dirc; // after use Method and modify as you like
}