Получить полный путь к файлу при отладке с помощью IIS Express
У меня есть приложение.NET, которое я пытаюсь отладить, и часть моего приложения загружает файл из моего проекта. Этот файл находится по адресу
C:\Users\USER_FOLDER\Documents\Visual Studio 2012\Projects\MY_PROJECT\_templates\myFile.html
В моем коде я указываю относительный путь к файлу и использую класс DirectoryInfo, чтобы получить полный путь к моему файлу:
string myFile = (new DirectoryInfo("_templates/myFile.html")).FullName;
Тем не менее, это возвращает следующий путь (дополнительные в качестве escape-символов):
"C:\\Program Files\\IIS Express\\_templates\\myFile.html"
Я ожидал, что путь, возвращаемый при отладке в IIS Express, будет соответствовать первому указанному пути, а не третьему. Почему это? Есть ли что-то еще, что мне нужно настроить в моем проекте, чтобы он правильно выводил пути? Я предполагаю, что этого не произойдет, если я разверну свой код на сайте IIS7, но я еще не достиг этого уровня тестирования.
1 ответ
Используйте Server.MapPath:
Server.MapPath("~/_templates/myFile.html")
или HttpServerUtility.MapPath:
HttpServerUtility.MapPath("~/_templates/myFile.html")