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(…)
即可获得所需的结果