微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用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服务器上存在一个位置,因为它位于服务器层次结构根目录的顶部,因此您所提供的位置无效.

原文地址:https://www.jb51.cc/aspnet/246169.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐