从类库中的文件夹中读取文件

时间:2011-06-22 14:10:36

标签: c# file-access

此刻我正在放大脑屁。我有一组由.NET网站中的类库读入的文件。问题是文件在三个不同的站点中使用(所有站点都引用了类库),所以我不想复制这三个文件。我想要做的是在类库中有一个文件夹作为共享资源,如下所示:

ClassLib
  \Templates
    -file1.xml
    -file2.pdf
  -MyClass.cs 

让MyClass从Templates目录中读取文件。很简单,除了从页面调用MyClass.cs之外,我们称之为Default.aspx。现在,MyClass.cs的代码如下:

IList<string> files = GetTemplateFiles(); // returns the path to the template files e.g. Templates/file1.xml
foreach (string file in files) { 
    if (File.Exists(file)) { 
        // do things here...
    }
}

File.Exists总是假的,似乎是因为它正在查看默认目录而不是ClassLib的路径(类似于C:\Projects\Shared\MyLib\)。现在,我无法使用AppDomain.CurrentDomain.BaseDirectory,因为这会因调用它的网站而异;模板应该始终可以从类库中的Templates目录中获得,而不是调用应用程序。 Assembly.GetExecutingAssembly()中的属性似乎也没有多大帮助,指向ASP.NET临时文件。

基本上我的问题是处理这个问题的最佳方法是什么。模板文件应该是每个应用程序可用的共享资源(而不是复制/粘贴到每个应用程序中的三个模板/目录中),但我不知道哪个应用程序会在给定时间调用它,所以我需要避免使用编码模板文件夹的文件路径。我错过了一些关于我如何检索模板文件的小而重要的内容,但我无法弄清楚到底是什么。

1 个答案:

答案 0 :(得分:1)

确定可用于所有三个站点的公共共享路径,并在web.config文件中定义该路径,确保IIS能够访问该共享文件夹。