MVC4列出并链接到Web目录中的所有文件

时间:2014-03-13 14:06:59

标签: asp.net-mvc asp.net-mvc-4 iis directoryinfo

我有一个MVC4网站(www.testsite.com/test) 我还有一个单独的目录来存储可下载的文件(www.testsite.com/downloads)

我已将下载目录配置为可在IIS中浏览。

如何读取目录的内容并在MVC中生成文件列表?

我已阅读DirectoryInfo GetFiles()方法,但它仅适用于本地目录,而/ Downloads目录位于测试服务器上。

1 个答案:

答案 0 :(得分:1)

首先,为文件夹创建Web.config值。像这样:

<appSettings>
  <add key="DownloadsDirectory" value="C:\path\to\folder" />
</appSettings>

对于应用程序的任何给定实例(本地开发实例,测试服务器实例,生产服务器实例等),您需要更新该实例的Web.config以指定与该实例相关的文件夹实例。他们都不必使用相同的文件夹,每个文件夹都可以使用适当的文件夹。因此,您的开发机器不需要访问生产服务器的文件夹,只需将其指向您计算机上的某个目录。

其次,从目录中读取时使用该值。例如:

var fileNames = Directory.GetFiles(ConfigurationManager.AppSettings["DownloadsDirectory"]);

当然,如果ConfigurationManager.AppSettings["DownloadsDirectory"] 值之前你想要检查代码,那么在尝试使用它之前,如果有&#39;那么就会产生一个配置无效的错误。没有价值。您甚至可以将Directory.Exists()与该值一起用作另一个检查,如果它不存在则再次引发友好错误。

重点是,如果您想获取目录中文件的信息,DirectoryDirectoryInfoSystem.IO中的许多其他对象几乎就是您所需要的。 d使用。