答案 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")
它将相对于正在执行的装配位置。