[英]ASP.NET Server.Mappath problem from inner folders
我有一個ASP.NET應用程序,在我的APP_Code文件夾中我有一個類。我有以下代碼來讀取我的根文件夾中的XML文件的內容
XmlDocument xmlSiteConfig = new XmlDocument();
xmlSiteConfig.Load(System.Web.HttpContext.Current.Server.MapPath("../myConfig.xml"));
我的Root文件夾有幾個帶有嵌套內部文件夾的文件夾。當我調用Appcode類中的代碼時,從第一級文件夾開始,我能夠正確加載XML文件,因為路徑是正確的。如果我從一個固有的文件夾調用同一段代碼,我收到一個錯誤。如果我將代碼更改為以下它將工作正常
xmlSiteConfig.Load(System.Web.HttpContext.Current.Server.MapPath("../../myConfig.xml"));
我怎么能解決這個問題。我不想改變對這段代碼的各種調用的文件路徑。用什么代碼我可以解決問題,這樣程序就會加載XML文件而不管調用位置如何。 有什么建議?
提前致謝
如果它在根文件夾中,請使用:
Server.MapPath("~/myConfig.xml")
這將適用於任何目錄。
使用波形符(〜)前綴您的路徑字符串 - 這表示網站的根目錄:
xmlSiteConfig.Load(System.Web.HttpContext.Current.Server.MapPath("~/myConfig.xml"));
System.Web.HttpContext.Current.Server.MapPath(“”)方法是獲取Web應用程序的根路徑。 所以System.Web.HttpContext.Current.Server.MapPath(“../ myConfig.xml”)是獲取Web應用程序的父路徑,如果你的文件不在這里,那就錯了。 您可以使用System.Web.HttpContext.Current.Server.MapPath(“/ path”)代替。
另一方面,您可以使用“〜”表示某些asp.net控件中的根路徑。
Server.MapPath("~/MYXML.xml")
在這個“〜”表示根目錄。 如果你想在任何子目錄中找到,那么你應該給路徑,例如,
Server.MapPath("~/App_Data/MyXml.xml")
Server.MapPath(“〜/ xmlFile.xml”)適合您嗎? 〜/告訴.NET應用程序始終從應用程序根目錄開始。 如果您的XML文件位於子文件夾中(不是您調用函數而是實際物理文件的位置),那么您將使用server.mappath(“〜/ myfolder / xmlFile.xml”)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.