获取特定的文件扩展名,同时根据目录的创建日期获取文件
本文关键字:获取 文件 创建日期 扩展名 | 更新日期: 2023-09-27 18:32:19
我试图根据最早的创建日期从某个目录中获取所有文件。有什么方法可以过滤掉所有未.tif的扩展?IM 使用的代码如下所示。
string dir = KQV.Default.Directory;
DirectoryInfo info = new DirectoryInfo(dir);
FileInfo[] files = info.GetFiles().OrderByDescending(p => p.CreationTime).ToArray();
由于某种原因,我似乎无法使用 where ends 进行搜索
编辑:Endswith需要一个字段来处理,在这种情况下是文件名。感谢这里的回复:3
只是简单的使用Where
,所以代码看起来像(测试):
DirectoryInfo info = new DirectoryInfo(@"C:'tmp");
FileInfo[] files = info.GetFiles()
.Where(f=>!(f.FullName.EndsWith("tif")))
.OrderByDescending(p => p.CreationTime)
.ToArray();
这应该有效(未经测试)
FileInfo[] files = info.GetFiles()
.Where(p => !String.Equals(Path.GetExtension(p.FullName), "tif", StringComparison.InvariantCultureIgnoreCase))
.OrderByDescending(p => p.CreationTime)
.ToArray();
这对
我有用。
弄得有点乱
FileInfo[] files = info.GetFiles().Where(p => p.Name.EndsWith(".tif")).OrderByDescending(p => p.CreationTime).ToArray();
在单个查询中:
var info = new DirectoryInfo("");
var files = info.GetFiles().Aggregate(new {FI = (FileInfo) null, Created = DateTime.MinValue},
(x, y) => y.CreationTimeUtc < x.Created &&
y.Name.EndsWith(".tif", true, CultureInfo.CurrentCulture)
? new {FI = y, Created = y.CreationTimeUtc}
: x);