C# 按特定顺序读取文件?

C# 按特定顺序读取文件?,c#,.net,file,C#,.net,File,我想从不同的文件夹中读取很多文件。现在我问自己什么是最聪明的方法。现在我正在使用 DirectoryInfo directory = new DirectoryInfo(myPath); FileInfo[] files = directory.GetFiles("*.txt"); 所以我有一个包含所有文件的列表,我可以遍历它们(逐个读取) 可以吗?有没有办法对列表进行重新排序,以便我始终将最旧的文件放在顶部。这可能是一个好的ide,因为我想开始阅读最旧的文件,最后是最新的。有

我想从不同的文件夹中读取很多文件。现在我问自己什么是最聪明的方法。现在我正在使用

    DirectoryInfo directory = new DirectoryInfo(myPath);
    FileInfo[] files = directory.GetFiles("*.txt");
所以我有一个包含所有文件的列表,我可以遍历它们(逐个读取)

可以吗?有没有办法对列表进行重新排序,以便我始终将最旧的文件放在顶部。这可能是一个好的ide,因为我想开始阅读最旧的文件,最后是最新的。有什么想法吗?

列出文件=目录
List<FileInfo> files = directory
    .GetFiles("*.txt")
    .OrderBy(f => f.LastWriteTime)
    .ToList();
.GetFiles(“*.txt”) .OrderBy(f=>f.LastWriteTime) .ToList(); 有关可按顺序排序的字段的全面列表,请参见和


下面是VB.NET中的一个示例

在您的代码之后,执行以下操作:

FileInfo[] orderedFiles = files.OrderBy(x => x.CreationTime).ToArray();
。。或者更好的是,首先对它们进行排序:

DirectoryInfo directory = new DirectoryInfo(myPath);
FileInfo[] files = directory.GetFiles("*.txt")
                   .OrderBy(x => x.CreationTime).ToArray();

您可以从目录中获取文件,然后按创建日期对其进行排序:

DirectoryInfo info = new DirectoryInfo(myPath);
FileInfo[] files = info.GetFiles("*.txt").OrderBy(f => f.CreationTime).ToArray();
现在,
文件
数组包含按创建日期排序的文件。通过更改
OrderBy
中的lambda表达式,您可以按任何方式对它们进行排序:

  • 按上次修改时间:
    OrderBy(f=>f.LastWriteTime)
  • 按名称:
    OrderBy(f=>f.name)
…等等。您的输出也不必是数组。通过将最后的
ToArray()
替换为
ToList()
,也可以将其转换为
列表

如果需要按相反顺序排序,只需使用
OrderByDescending(…)
即可获得所需的结果