C# 根据目录中的创建日期获取文件时,获取特定的文件扩展名

C# 根据目录中的创建日期获取文件时,获取特定的文件扩展名,c#,fileinfo,getfiles,C#,Fileinfo,Getfiles,我试图根据最早的创建日期从某个目录获取所有文件。有没有办法过滤掉所有不是.tif的扩展名?下面是我使用的代码 string dir = KQV.Default.Directory; DirectoryInfo info = new DirectoryInfo(dir); FileInfo[] files = info.GetFiles().OrderByDescending(p => p.CreationTime).ToArray(); 由于某种原因,我似乎无法用where-endswi

我试图根据最早的创建日期从某个目录获取所有文件。有没有办法过滤掉所有不是.tif的扩展名?下面是我使用的代码

string dir = KQV.Default.Directory;
DirectoryInfo info = new DirectoryInfo(dir);
FileInfo[] files = info.GetFiles().OrderByDescending(p => p.CreationTime).ToArray();
由于某种原因,我似乎无法用where-endswith搜索

编辑:Endswith需要使用一个字段,在本例中是文件名。感谢这里的回复:3

这应该可以(未经测试)


只需简单地使用
,其中
,代码看起来就像(测试过的):

这对我有用

有点胡闹了

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);
var info=newdirectoryinfo(“”);
var files=info.GetFiles().Aggregate(new{FI=(FileInfo)null,Created=DateTime.MinValue},
(x,y)=>y.CreationTimeUtc
从你的建议中得到了一个想法。尝试此操作后,FileInfo[]files=info.GetFiles().Where(p=>p.Name.EndsWith(“.tif”).OrderByDescending(p=>p.CreationTime.ToArray();很高兴为您提供帮助,您还可以使用“.TIF”和“.TIF”。您需要使其不区分大小写。@Candide endwith对大小写敏感有一个重载,请参阅我的答案,我使用了它
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);