配置文件存放在该程序的上一级目录
string filePath = "http://" + HttpContext.Current.Request.Url.Host + HttpContext.Current.Request.ApplicationPath +"/Configure.xml
XmlDocument XMLFile = new XmlDocument();
     XMLFile.Load(filePath);
这里可以读取.但是当我修改节点的内容以后想保存
     XMLFile.Save(filePath);
这里报错:说是不能使用URI !!!!
于是我使用
    XMLFile.Save("../Configure.xml");
更神奇了.目录跑到c:\windows\下面了.
然后使用绝对路径E:\web\config\Configure.xml可以保存文件.
但是现在需要的是使用相对路径保存修改后的xml文件.请教各位该如何解决??

解决方案 »

  1.   

    Configure.xml你这个文件应该在C:/windows/system32目录中吧
    你将filePath改为绝对路径试试。
      

  2.   

    打开文件必须使用绝对路径。
    使用Server.MapPath,可以把相对路径变为绝对路径的。如果xml文件放在当前目录下的config下的话:
    string strPath = Server.MapPath(".") + @"\config\Configure.xml"
      

  3.   

    XMLFile.Save(HttpContext.Current.Server.MapPath(filePath));
    转换成物理路径
      

  4.   

    HttpContext.Current.Server.MapPath是把相对路径转换为绝对路径啊.实际上就是变成了获得配置文件的URL.这样的话实际上filePath已经是绝对路径了.
    转换后出现以下错误"MapPath“http://localhost/Web/Configure.xml”的路径无效。应为虚拟路径。"
    实际上我就是想使用相对路径来保存配置文件.我说情况实际上是这样.
    页面文件是在e:\web\configure.xml或http://hostname/web/config/configure.xml
    配置文件在E:\web\configure.xml,web路径是在http://hostname/web/configure.xml.
    现在的问题是可以使用http://hostname/web/configure.xml的路径来读取文件.但是不能使用该路径来保存文件.要保存只能使用E:\web\configure.xml来保存.
    我本来想用相对路径XMLFile.Save("./configure.xml")来保存.想要解决的问题就是如何能做到无论程序放哪个盘里面.都可以顺利通过的写配置文件(主要是为了安装的时候用).
      

  5.   

    解决了.Server.MapPath("相对路径")就ok了~~3X