griegs
griegs

Reputation: 22770

Get files in a folder

In my MVC application I have the following paths;

How would I, in my c# controller, get a list of all the files within my thumbs folder?

Edit

Is Server.MapPath still the best way?

I have this now DirectoryInfo di = new DirectoryInfo(Server.MapPath("/content/images/thumbs") ); but feel it's not the right way.

is there a best practice in MVC for this or is the above still correct?

Upvotes: 23

Views: 52129

Answers (2)

slfan
slfan

Reputation: 9139

.NET 4.0 has got a more efficient method for this:

Directory.EnumerateFiles(Server.MapPath("~/Content/images/thumbs"));

You get an IEnumerable<string> on which you can iterate on the view:

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

Upvotes: 53

Daniel T.
Daniel T.

Reputation: 38430

Directory.GetFiles("/content/images/thumbs")

That will get all the files in a directory into a string array.

Upvotes: 10

Related Questions