从文件名中带有最大日期的目录中获取文件
本文关键字:获取 文件 日期 文件名 | 更新日期: 2023-09-27 18:08:17
我需要获取文件名中最大日期的文件。
文件示例:zipFiles_2013-04-09_17-04-37.zip
DirectoryInfo di = new DirectoryInfo(FilePath);
我只能得到latestValue日期。我如何获得FullName或Name?
DateTime latestValue;
di.GetFiles().Max(x => DateTime.TryParseExact(GetFileNameDate(x.FullName), "yyyy-MM-dd_HH-mm-ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out latestValue));
用OrderByDescending
按文件名排序文件。然后从result:
var latestFile = di.GetFiles()
.OrderByDescending(f => GetDateFromFileName(f.FullName))
.First();
这里GetDateFromFileName
是一个从文件名解析DateTime
的方法。像这样:
private DateTime GetDateFromFileName(string fileName)
{
DateTime date;
if (DateTime.TryParseExact(GetFileNameDate(fileName),
"yyyy-MM-dd_HH-mm-ss", CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
return date;
// default value if date cannot be parsed (you can use nullable DateTime also)
return DateTime.MinValue;
};
你也可以使用morelinq(可从NuGet) MaxBy方法:
var latestFile = di.GetFiles().MaxBy(f => GetDateFromFileName(f.FullName));