如何使用Server.MapPath来获取ASP.NET中的网站文件夹外的位置

前端之家收集整理的这篇文章主要介绍了如何使用Server.MapPath来获取ASP.NET中的网站文件夹外的位置前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当我的ASP.NET网站使用文档(例如 XML)时,我通常会如下载入文档:
Server.MapPath("~\Documents\MyDocument.xml")

但是,我想将Documents文件夹移出网站文件夹,以便它现在是网站文件夹的兄弟.这将使维护文档更容易.

但是,重写文档加载代码如下:

Server.MapPath("../../Documents/MyDocument.xml")

导致ASP.NET的投诉,它不能“退出顶级目录”.

所以任何人都可以建议如何在网站文件夹外相对指定文件夹的位置?由于明显的部署原因,我真的不想指定绝对路径.

谢谢

大卫

解决方法

如果您知道相对于您的Web根目录,可以使用Server.Mappath获取Web根目录的文本位置,然后在路径( http://msdn.microsoft.com/en-us/library/system.io.path_methods.aspx)上获取路径的方法.

在粗略的未经检查的代码如:

webRootPath = Server.MapPath("~")
docPath = Path.GetFullPath(Path.Combine(rootPath,"../Documents/MyDocument.xml"))

对不起,如果我得到了语法错误,但Path类应该是你以后玩真正的FS路径而不是Web类型路径.

您的方法失败的原因是Server.MapPath在您的Web服务器上存在一个位置,因为它位于服务器层次结构根目录的顶部,因此您所提供的位置无效.

猜你在找的asp.Net相关文章