ASPX - 我的网站文件夹的路径是什么?

时间:2011-07-16 14:29:54

标签: c# asp.net configuration

我有一个WebSite项目 - ASPX,4.0。在其中我有一个文件夹,如:

bin\Xslt\Template.xslt

我想在我的类库中加载此文件。在web.config中是:

 <configuration>
    <appSettings>
        <add key="Filepath" value=".\Xslt\Template.xslt" />
    </appSettings>
 </configuration>

但是,我的类库无法找到它:

 mTransform = new XslCompiledTransform();
 mTransform.Load(ConfigurationManager.AppSettings["Filepath"]);

抛出:Could not find a part of the path 'C:\Xslt\Template.xslt'. 我知道这里有一个问题,但我不记得正确的方法......

如何正确引用aspx \ bin \文件夹中的文件?

4 个答案:

答案 0 :(得分:1)

使用Server.Mappath("~\xslt\template.xslt");

答案 1 :(得分:1)

尝试将密钥更改为:

<add key="Filepath" value="~/bin/Xslt/Template.xslt" />

并将您的代码更改为:

mTransform.Load(HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["Filepath"]));

答案 2 :(得分:0)

尝试在您的网络配置中提供完整路径 例如,如果您的文件位于C:\ VSPROJECTS \ bin \ Xslt \ Template.xslt

然后在你的webconfig中将其写为
 &LT; add key =“Filepath”value =“C:\ VSPROJECTS \ bin \ Xslt \ Template.xslt”/&gt;

答案 3 :(得分:0)

我找到了方法(因为它在一个程序集中,我不想添加对System.Web的依赖):

string codeBase = Path.GetDirectoryName(Assembly.GetExecutingAssembly().CodeBase);
string filepathRelative = ConfigurationManager.AppSettings["Filepath"];

string fullFilepath = Path.Combine(codeBase, filepathRelative);

由于

修改System.AppDomain.CurrentDomain.BaseDirectory也可以解决问题......