c#如何在web.config中给出相对路径

时间:2014-09-10 12:58:01

标签: c# asp.net .net

这是文件夹结构

D:
|_ MYPROJECT
|   |_web.config
|_ SAMPLE
    |_xml-file

在web.config中,我给出了绝对路径:

   <add key="XMLPATH" value=" D:\SAMPLE\xml file" />

现在,我如何将此路径更改为相对路径?     我在下面试过,但它没有用。

    <add key="XMLPATH" value=" ..\..SAMPLE\xml-file" />

2 个答案:

答案 0 :(得分:2)

我有这个旧的旧代码。每当我想在settings-xml-config中放置一个相对文件路径名时,我就会调用这个辅助函数。

public class DirectoryHelpers
{
    public static string FindPhysicalRootDirectory(Page p)
    {
        string rootDir;
        //rootDir = p.Server.MapPath("/");

        rootDir = p.Server.MapPath("~/");
        return rootDir;
    }

    public static string FindVirtualRootDirectory(Page p)
    {
        return "~/";
    }

}

一个例子:

public partial class DirectoryCheck : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        string x = string.Concat("Physical Directory: ", Common.DirectoryHelpers.FindPhysicalRootDirectory(this.Page));



    }
}

APPEND1:

获得FindPhysicalRootDirectory之后,您将从web.config中读取RELATIVE文件路径,并使用System.IO.Path.Combine来组合这两个值。

答案 1 :(得分:-1)

我想你应该试试这个:

<add key="XMLPATH" value="SAMPLE\xml-file" />