如何在WPF/C#中按日期范围筛选列出创建的子目录?
在WPF/C#中按创建日期范围筛选子目录
首先在WPF界面上添加两个DatePicker控件(比如命名为startDatePicker和endDatePicker),让用户选择起始和结束日期,然后修改原代码,通过目录的创建时间做筛选即可:
string path = @"C:\Temp\MyFolder"; DirectoryInfo dirPlace = new DirectoryInfo(path); // 获取用户选择的日期,处理结束日期的时间部分,确保包含当天最后一刻 if (startDatePicker.SelectedDate.HasValue && endDatePicker.SelectedDate.HasValue) { DateTime startDate = startDatePicker.SelectedDate.Value.Date; DateTime endDate = endDatePicker.SelectedDate.Value.Date.AddDays(1).AddTicks(-1); // 筛选出创建日期在范围内的子目录 var filteredDirectories = dirPlace.GetDirectories() .Where(d => d.CreationTime >= startDate && d.CreationTime <= endDate); // 清空列表再添加筛选结果 listBox.Items.Clear(); foreach (var directory in filteredDirectories) { listBox.Items.Add(directory.Name); } }
关键说明:
- 用
DirectoryInfo.CreationTime获取系统记录的目录创建时间,以此作为筛选依据 - 处理结束日期时,通过
AddDays(1).AddTicks(-1)把日期设为所选日期的23:59:59.9999999,避免漏掉当天创建的目录 - 如果需要按修改时间筛选,把
CreationTime替换成LastWriteTime即可
额外提醒:
可以加上异常捕获,处理路径不存在、权限不足等情况:
try { // 上述筛选逻辑代码 } catch (DirectoryNotFoundException) { MessageBox.Show("指定路径不存在"); } catch (UnauthorizedAccessException) { MessageBox.Show("没有访问该路径的权限"); }
内容的提问来源于stack exchange,提问作者user2835586
相关产品推荐
相关产品推荐

