我需要在目录中找到两个最新的文件。
我可以使用此代码找到第一个:
var directory = new DirectoryInfo("f:\\PAB\\bil_prev_ent");
var firstfile = (from f in directory.GetFiles("*.pdf")
orderby f.LastWriteTime descending
select f).First();
我想知道如何找到第二个文件。
答案 0 :(得分:6)
使用Take(n)
代替First()
var myfiles = (from f in directory.GetFiles("*.pdf")
orderby f.LastWriteTime descending
select f).Take(2);
以上将给出最近修改过的文件
如果您需要最近创建的文件,请使用 CreationTime
var myfiles = (from f in directory.GetFiles("*.pdf")
orderby f.CreationTime descending
select f).Take(2);
答案 1 :(得分:5)
创建一个查询,然后选择您需要的内容,例如:
var orderedFiles = directory.EnumerateFiles("*.pdf")
.OrderByDescending(f => f.LastWriteTime);
var newestTwo = orderedFiles.Take(2).ToList();
我使用过EnumerateFiles
,因为它不需要将所有文件加载到内存中。
答案 2 :(得分:0)
我需要的逻辑是“CreationTime”。 解决方案3号就像一个魅力,但我使用了ToArray。
所以正确的代码是:
var directory = new DirectoryInfo("f:\\PAB\\bil_prev_ent");
var orderedFiles = directory.EnumerateFiles("*.pdf").OrderByDescending(f => f.CreationTime);
var newestTwo = orderedFiles.Take(2).ToArray();
答案 3 :(得分:0)
答案2:
现在文件没有完整路径。
我如何拥有完整的道路?