使用分页和字母搜索列出目录中的文件

时间:2012-03-09 13:24:15

标签: c#

我正在制作一个小脚本,它将从服务器上的预定义文件夹中获取所有文件,列出它们,按名称排序,使用寻呼机以及通过[A]分组它们的方式,[ B]等导航。

我的问题是遍历所有文件并将它们放在Array / List / Directonary(?)中,然后创建Gridview / Datagrid / Listview(?)来显示文件,并处理默认的分页。

根据以上内容寻找实现此目标的最佳方式的输入 - 非常感谢任何输入和/或片段/示例。

1 个答案:

答案 0 :(得分:1)

如果您想要更灵活,可以使用LINQ轻松完成。

var pageSize = 25;
var pageNum = 1;

var currentPage = Directory.GetFiles("dir_path").Skip((pageNum - 1) * pageSize).Take(pageSize);

// Do something with the results.

每个下一个/上一个的de / Increment pageNum(只需要考虑0&最大页数)。

您还可以加入其他linq操作,例如orderbywhereselectgroupbyjoin等。

来自您的评论:

在上面的示例中,您可以调用currentPage上的方法,例如.ToArray() / .ToList() / .ToDictionary(),以便将数据组合到最适合您需求的集合中。

使用System.Windows.Forms.ListView:

的示例

订购商品,将它们转换为ListViewItem数组,然后在列表视图的商品集合中使用AddRange()将它们添加到其中。

var myListView = new ListView();
var allItems = currentPage.OrderBy(c => c).Select(c => new ListViewItem(c)).ToArray();
myListView.Items.AddRange(allItems);