获取文件夹中的文件

gri*_*egs 19 asp.net-mvc file

在我的MVC应用程序中,我有以下路径;

  • /内容/图像/全
  • /内容/图像/大拇指

在我的c#控制器中,如何获取thumb文件夹中所有文件的列表?

编辑

Server.MapPath仍然是最好的方法吗?

我现在有这个,DirectoryInfo di = new DirectoryInfo(Server.MapPath("/content/images/thumbs") );但觉得这不是正确的方法.

MVC是否有最佳实践,或者上述内容仍然正确吗?

slf*_*fan 45

.NET 4.0有一个更有效的方法:

Directory.EnumerateFiles(Server.MapPath("~/Content/images/thumbs"));
Run Code Online (Sandbox Code Playgroud)

您将获得一个IEnumerable<string>可以在视图上迭代的内容:

@model IEnumerable<string>
<ul>
    @foreach (var fullPath in Model)
    {
        var fileName = Path.GetFileName(fullPath);
        <li>@fileName</li>
    }
</ul>
Run Code Online (Sandbox Code Playgroud)

  • 如果您在查找_Server_时遇到问题,请查看以下问题:[无法使用Server.MapPath](http://stackoverflow.com/questions/11105768/cannot-use-server-mappath) (4认同)

Dan*_* T. 7

Directory.GetFiles("/content/images/thumbs")
Run Code Online (Sandbox Code Playgroud)

这会将目录中的所有文件都放入字符串数组中.

  • @Daniel我无法让这个工作.它映射到c:\ content\images\thumb而不是我的Web应用程序级别. (2认同)