按名称文件获取数组文件名顺序c#

时间:2016-09-25 13:58:29

标签: c# linq

DirectoryInfo d = new DirectoryInfo(mypath);//Assuming Test is your Folder
FileInfo[] Files = d.GetFiles("*.jpg"); //Getting Text files

文件数组如何按名称排序?

让我们说

files[0].Name is 'hi1.jpg'
files[1].Name is 'hi2.jpg' 

等等

4 个答案:

答案 0 :(得分:3)

只是在Linq名称空间中调用OrderBy

using System.Linq;

....
FileInfo[] Files = d.GetFiles("*.jpg").OrderBy(x => x.Name).ToArray();

顺便说一下,我建议您使用EnumerateFiles而不是GetFiles。特别是如果你必须像这样循环结果

foreach(FileInfo fi in d.EnumerateFiles("*.jpg").OrderBy(x => x.Name))
    Console.WriteLine(fi.Name);

如MSDN文档中所述

  

EnumerateFiles和GetFiles方法的区别如下:当你   使用EnumerateFiles,您可以开始枚举集合   返回整个集合之前的FileInfo对象。当你   使用GetFiles,您必须等待整个FileInfo对象数组   在您可以访问阵列之前返回。

答案 1 :(得分:0)

FileInfo[] Files = d.GetFiles("*.jpg").OrderBy(f => f.Name).ToArray();

答案 2 :(得分:0)

使用Linq

d.GetFiles("*.jpg").OrderBy(file=> file.Name).ToArray();

答案 3 :(得分:0)

FileInfo [] files = d.GetFiles(" *。jpg")。OrderBy(file => file.Name)。ToArray();

  • 如上所述.ToArray()函数和OrderBy(columnName)完成了这项工作。