Server.MapPath() не получает необходимый путь

У меня есть сайт asp.net, на котором есть следующий каталог:

C: \ Users \ Desktop \ Testing \ SRC \ сайт

У меня есть еще одна папка под названием "файлы", которая находится здесь:

C:\Users\Desktop\Testing\src\files

из моего проекта я пытаюсь прочитать файлы из папки "файлы", я делаю это так:

var path = HttpContext.Current.Server.MapPath("/files"); 

Я также попробовал:

var path = HttpContext.Current.Server.MapPath(".."); 

Но это говорит Failed to map the path '/files'.

Что может быть причиной этого? это могло сделать что-то с моим IIS? Как я могу заставить это работать??

Спасибо!

2 ответа

Вы не можете сделать это. Server.MapPath Метод работает только с папками относительно корня веб-приложения, которое в вашем случае C:\Users\Desktop\Testing\src\website, Вы не можете подняться на один уровень выше в иерархии, используя этот метод, поскольку вы покидаете домен управления этим приложением ASP.NET. Для достижения этого вам придется использовать абсолютный путь. Например, если вы хотите прочитать какой-то файл, который находится за пределами вашего приложения:

var data = File.ReadAllText(@"C:\Users\Desktop\Testing\src\files\somefile.txt");

При условии, что виртуальный каталог веб-сайтов сопоставлен с.../src/website, вам нужно получить папку "files", например:

var filesDir = Path.Combine(HttpContext.Current.Server.MapPath("~"), "../files/");
Другие вопросы по тегам