c# - 如何使用 C# 按文件名中的日期对文件进行排序?

标签 c# linq

您好,我在一个文件夹中有很多文件。这些文件在特定格式的文件名中有日期和时间。我需要从名称中提取日期,然后按日期升序排序。 文件名示例:-

format_type_2011-07-12-13-00-12.txt

之前我使用的是 createTime。但是现在要求改变了。

var Files = new DirectoryInfo(FileDirectory).GetFiles()
                                                            .OrderBy(f => f.CreationTime)
                                                            .ToList();

我该怎么做?感谢您的帮助。

最佳答案

这应该有效:

var di = new DirectoryInfo(FileDirectory);
var Files = di.GetFiles()
              .OrderBy( f => f.Name.Substring(f.Name.LastIndexOf('_')+1)
              .ToList();

由于您的文件名(减去格式信息)已经按照 ISO8601 顺序排列(先是年,然后是月,然后是日期,等等)您可以只根据字符串进行排序,而不必转换为日期。

关于c# - 如何使用 C# 按文件名中的日期对文件进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6627029/

相关文章:

c# - Linq/ Entity Framework 中的对象和上下文有什么区别

c# - 如何展平列表中的数据,然后使用 LINQ 获取每列中的内容计数?

c# - 如何在没有调用的情况下合并两个 C# Lambda 表达式?

c# - 与非线性 Excel 范围不同的列表 C#

c# - SQL Server 2008 从大于给定日期时间的返回值中选择最小值

c# - 无法将类型 'System.DateTime?' 隐式转换为 'System.DateTime' 。存在显式转换

c# - LINQ DateTimeOffset 与今天的比较

c# - TCP套接字在C#中验证SslStream的SSL证书

c# - 如何在 C# 中检索单选按钮的名称属性

c# - SQL View 上的 LINQ 选择得到错误的答案