如何按升序读取文件夹中的文件?

我有包含图像文件的文件夹,其编号为1,2,3 …
我如何按顺序读取图像文件名,从1开始直到结束(无论它是什么数字)。

您可以在文件数组上使用OrderBy 。

DirectoryInfo dir = new DirectoryInfo(@"C:\yourfolder"); FileInfo[] files = dir.GetFiles(); //User Enumerable.OrderBy to sort the files array and get a new array of sorted files FileInfo[] sortedFiles = files.OrderBy(r => r.Name).ToArray(); 

对于只有数字(int)名称的文件号,请尝试:

 FileInfo[] sortedFiles = files .OrderBy(r => int.Parse(Path.GetFileNameWithoutExtension(r.Name))) .ToArray(); 

Habib的答案是正确的,但请注意,你不会按数字顺序得到结果(即你在处理2.png之前处理10.png)。 要以数字方式对文件名进行排序,而不是按字母顺序排序:

 foreach (string fileName in Directory.GetFiles(Environment.CurrentDirectory) .OrderBy((f) => Int32.Parse(Path.GetFileNameWithoutExtension(f1)))) { // do something with filename } 

将所有文件名读入数组。 按升序对数组元素进行排序。 完成!

使用Arraylist收集目录中的所有文件名并对它们进行排序(它也适用于字母数字文件名

  ArrayList  dirFiles=new ArrayList(); File file = new File("DirectoryPath"); File createdFile = null; String [] str=file.list(); for(int j=0;j