[英]How to get all Directories from folder with by date range?
我需要从特定文件夹中获取所有目录,日期范围如下:
我正在尝试使用GetDirectories
方法进行过滤,但是没有运气:
RootDirInfo.GetDirectories()
.Where(x => new DirectoryInfo(x).CreationTime.Date == DateTime.Today.Date);
让我将其拆分为多个函数以使其更加清晰(并且您将不会创建多个对象):
private static bool IsInRange(DateTime time, DateTime min, DateTime max)
{
return time >= min && time <= max;
}
现在,使用LINQ,您可以简单地编写:
public static IEnumerable<DirectoryInfo> GetDirectories(
DirectoryInfo directory,
DateTime startDate,
DateTime endDate)
{
return directory.GetDirectories()
.Where(x => IsInRange(x.CreationTime, startDate, endDate));
}
如果要紧凑:
public static IEnumerable<DirectoryInfo> GetDirectories(
DirectoryInfo directory,
DateTime startDate,
DateTime endDate)
{
return directory.GetDirectories()
.Where(x => x.CreationTime >= startDate && x.CreationTime <= endDate);
}
最后的注意:您正在做new DirectoryInfo(x)
但是错了,因为,我想RootDirInfo
是DirectoryInfo
,然后GetDirectories()
将返回DirectoryInfo[]
准备使用(请参阅我的最后一个代码片段)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.