2016-01-18 2 views
0

В настоящее время я делаю это:загрузка файла из относительного пути

XDocument feedXml = XDocument.Load("C:/NewsFeed/NewsFeed/App_Data/WorldNews.xml"); 

Но я хотел бы использовать относительный путь, так что я, я попытался следующие:

XDocument feedXml = XDocument.Load("~/App_Data/WorldNews.xml"); 

и установить свойство «Копировать в выходной каталог», «Копировать всегда».

Но я получаю следующее сообщение об ошибке:

Исключение типа «System.IO.DirectoryNotFoundException» произошло в mscorlib.dll, но не был обработан в пользовательском коде Дополнительная информация: часть пути 'C: \ Program Files (x86) \ IIS Express \ ~ \ App_Data \ WorldNews.xml' не найден.

Любая помощь пожалуйста?

+0

контроля следующую ссылку [HttpServerUtility.MapPath] (https://msdn.microsoft.com/en-us/library/ system.web.httpserverutility.mappath (v = vs.110) .aspx) – MethodMan

ответ

4

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

var path = HttpContext.Current.Server.MapPath("~/App_Data/WorldNews.xml"); 
var feedXml = XDocument.Load(path); 
+0

Большое спасибо, только то, что мне нужно. Будет отмечать как принято за 9 минут :) –