在web.config中指定相关文件位置以供标准C#类库使用

时间:2011-01-06 15:38:35

标签: c# asp.net

5 个答案:

答案 0 :(得分:28)

答案 1 :(得分:4)

为什么不让Web应用程序从配置文件中读取路径,使用Server.MapPath解析它,然后将生成的路径传递给类库?


根据您的评论,我有一个不同的建议:不要使用相对路径。

答案 2 :(得分:1)

例如

在你的web.config

    <appSettings>
        <add key="FilePath" value="~/images"/>
    </appSettings>

并在.cs文件后面的代码中

    string filters = "*.jpg;*.png;*.gif";
    string Path = ConfigurationManager.AppSettings["FilePath"].ToString();

    List<String> images = new List<string>();

    foreach (string filter in filters.Split(';'))
    {
        FileInfo[] fit = new DirectoryInfo(this.Server.MapPath("~/images")).GetFiles(filter);
        foreach (FileInfo fi in fit)
        {
            images.Add(String.Format(Path + "/{0}", fi));                 
        }
    }

    RepeaterImages.DataSource = images;
    RepeaterImages.DataBind();

答案 3 :(得分:0)

你也可以这样做:

在web.config中:

<add key="MyFileLocation" value="content/dataMyDataFile.txt" />

在您的代码中:

    string filePath = ConfigurationManager.AppSettings["MyFileLocation"];
    Path.Combine(AppDomain.CurrentDomain.BaseDirectory, filePath)

结果将提供类似:“C:\ yourproj \ content \ dataMyDataFile”之类的东西。

答案 4 :(得分:-1)

如果你这样做

File.Open(@"content\data\file.txt")

它将相对于正在执行的装配位置。