Directory.GetFiles按日期排序

use*_*305 11 sorting date

我正在使用Directory.GetFiles从特定文件夹中获取文件.默认情况下,该文件夹中的文件将按文件名排序.按字母顺序排列.我想按文件修改顺序获取文件.

我不能使用Directory.GetInfo,因为我想获取包含特定关键字的文件.请让我知道如何根据修改日期对文件进行排序.我使用以下代码

string[] arr1 = Directory.GetFiles("D:/TestFolder", "*"Test12"*");
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激.

Mas*_*uso 12

下面怎么样

DirectoryInfo di = new DirectoryInfo("D:\\TestFolder");
FileSystemInfo[] files = di.GetFileSystemInfos();
var orderedFiles = files.Where(f=>f.Name.StartsWith("Test12"))
                        .OrderBy(f => f.CreationTime)
                        .ToList();
Run Code Online (Sandbox Code Playgroud)

您可以f.Name.StartWith根据需要替换任何字符串函数(.Contains等)

您可以替换f => f.CreationTime使用 f.LastWriteTime,以获得修改的时间,但记住,开始在Windows Vista中,最后访问时间默认情况下不更新.这是为了提高文件系统性能


tre*_*bon 6

如果您更改为目录信息,则可以执行此操作

FileInfo[] files = new DirectoryInfo("path")
                        .GetFiles("filter")
                        .OrderBy(f => f.CreationTime)
                        .ToArray();
Run Code Online (Sandbox Code Playgroud)

编辑:
看到你想要修改日期,可以用f.LastWriteTime来做