gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 00:06:17 25 4
gpt4 key购买 nike

当我的 ASP.NET 站点使用文档(例如 XML)时,我通常按如下方式加载文档:

Server.MapPath("~\Documents\MyDocument.xml")

但是,我想将 Documents 文件夹移出网站文件夹,以便它现在是网站文件夹的同级。这将使维护文档变得相当容易。

但是,重写文档加载代码如下:
Server.MapPath("../../Documents/MyDocument.xml")

导致 ASP.NET 提示它无法“退出顶级目录”。

那么有人可以建议我如何相对指定网站文件夹之外的文件夹的位置吗?出于明显的部署原因,我真的不想指定绝对路径。

谢谢

大卫

最佳答案

如果您知道它相对于您的 Web 根目录的位置,您可以使用 Server.MapPath获取您的网络根目录的物理位置,然后 Path class的方法来获取您的文档路径。

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

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

对不起,如果我弄错了语法,但是 Path class 应该是您使用真正的 FS 路径而不是 Web 类型路径所追求的。

你的方法失败的原因是 Server.MapPath在您的 Web 服务器上获取一个位置,而您提供的位置无效,因为它位于服务器层次结构根目录的“上方”。

关于asp.net - 如何使用 Server.MapPath 在 ASP.NET 中获取网站文件夹外的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3422270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com