从相对路径加载文件

时间:2016-01-18 16:54:48

标签: c# asp.net .net relative-path

我目前正在这样做:

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

但是我想使用相对路径,所以我尝试了以下内容:

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

将属性Copty设置为输出目录,然后将其设置为"始终复制"。

但我收到以下错误:

类型' System.IO.DirectoryNotFoundException'的例外情况发生在mscorlib.dll但未在用户代码中处理 附加信息:路径的一部分' C:\ Program Files(x86)\ IIS Express \〜\ App_Data \ WorldNews.xml'找不到。

请帮忙吗?

1 个答案:

答案 0 :(得分:4)

XDocument.Load对映射路径一无所知。相反,您应该使用HttpServerUtility.MapPath映射路径,然后将结果传递到XDocument.Load

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