在.NET Directory.GetFiles中有很好的功能,当我需要从目录中获取所有文件时,它很容易使用它.
Directory.GetFiles("c:\\Files")
Run Code Online (Sandbox Code Playgroud)
但是,如果存在大量具有不同创建时间的文件,我可以使用如何(什么模式)仅获取创建时间的文件?
谢谢!
Nic*_*rey 25
为了提高性能,特别是如果目录搜索可能很大,那么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()
;
Run Code Online (Sandbox Code Playgroud)
请注意,FileSystemInfo
可以(和)缓存属性及其子类型,因此它们不一定反映当前的当前现实.因此,要求Refresh()
确保数据是正确的.
kma*_*zek 24
试试这个:
var todayFiles = Directory.GetFiles("path_to_directory")
.Where(x => new FileInfo(x).CreationTime.Date == DateTime.Today.Date);
Run Code Online (Sandbox Code Playgroud)