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

WPF C#使用Directory.GetDirectories填充DataGrid的问题咨询

实现方案

你当前直接绑定Directory.GetDirectories()返回的字符串数组,只能拿到路径文本和长度两个属性,没法满足获取文件夹日期、显示短名称的需求,按如下调整即可:

  1. 修改C#后端代码,将路径字符串转为DirectoryInfo对象集合,该对象封装了文件夹的所有系统属性:
// 原获取路径逻辑保留,增加转DirectoryInfo的处理
var dirPaths = Directory.GetDirectories("替换为你的NAS路径");
var dirInfoList = dirPaths.Select(path => new DirectoryInfo(path)).ToList();
// 绑定转换后的集合到DataGrid
RandomDataGridName.ItemsSource = dirInfoList;
  1. 修改XAML绑定配置,直接绑定DirectoryInfo的对应属性即可,DataGrid默认支持点击列头自动按对应属性排序,无需额外编码:
<DataGrid.Columns>
    <DataGridTextColumn IsReadOnly="True" Binding="{Binding Name}" Header="文件夹名称"/>
    <DataGridTextColumn IsReadOnly="True" Binding="{Binding CreationTime}" Header="创建日期"/>
    <DataGridTextColumn IsReadOnly="True" Binding="{Binding LastWriteTime}" Header="最后修改时间"/>
    <!-- 如果需要显示完整路径再加下面这列,不需要可以直接删除 -->
    <DataGridTextColumn IsReadOnly="True" Binding="{Binding FullName}" Header="完整路径"/>
</DataGrid.Columns>

问题解答

  • 问题1:直接使用Directory.GetDirectories()的字符串返回结果不能实现需求,转换为DirectoryInfo集合绑定后即可实现显示日期、点击列排序的需求。
  • 问题2:不需要手动裁剪路径,DirectoryInfo的Name属性本身就只返回路径末尾的文件夹名称,直接绑定该属性即可。

内容的提问来源于stack exchange,提问作者Stanko Maksimovic

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:39:03