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

相关文章

### 创建一个gRPC服务项目(grpc服务端)和一个 webapi项目(...
一、SiganlR 使用的协议类型 1.websocket即时通讯协议 2.Ser...
.Net 6 WebApi 项目 在Linux系统上 打包成Docker镜像,发布为...
一、 PD简介PowerDesigner 是一个集所有现代建模技术于一身的...
一、存储过程 存储过程就像数据库中运行的方法(函数) 优点:...
一、Ueditor的下载 1、百度编辑器下载地址:http://ueditor....