You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 14:42:11