gpt4 book ai didi

c# - Directory.GetFiles 只获取今天的文件

转载 作者:可可西里 更新时间:2023-11-01 07:49:03 25 4
gpt4 key购买 nike

.NET Directory.GetFiles 中有一个很好的功能,当我需要从目录中获取所有文件时使用它很简单。

Directory.GetFiles("c:\\Files")

但是,如果有很多具有不同创建时间的文件,我如何(使用什么模式)仅获取今天创建时间的文件?

谢谢!

最佳答案

为了性能,特别是如果目录搜索可能很大,使用 Directory.EnumerateFiles() 惰性枚举搜索路径,比 Directory.GetFiles 更可取(),它急切地遍历搜索路径,在过滤之前收集所有匹配项:

DateTime today = DateTime.Now.Date ;
FileInfo[] todaysFiles = new DirectoryInfo(@"c:\foo\bar")
.EnumerateFiles()
.Select( x => {
x.Refresh();
return x;
})
.Where( x => x.CreationTime.Date == today || x.LastWriteTime == today )
.ToArray()
;

请注意,FileSystemInfo 及其子类型的属性可以(并且已经)被缓存,因此它们不一定反射(reflect)当前的实际情况。因此,调用 Refresh() 以确保数据正确。

关于c# - Directory.GetFiles 只获取今天的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13865718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com