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

本文关键字:文件 分页 alpha 搜索 | 更新日期: 2023-09-27 18:27:26

我正在制作一个小脚本,该脚本将从服务器上的预定义文件夹中获取所有文件,用寻呼机和[a]、[B]等导航方式列出并按名称排序。

我的想法是循环浏览所有文件,并将它们放在Array/List/Directonary(?)中,然后制作Gridview/Datagrid/Listview(?)来显示文件,并处理默认分页。

在上述基础上寻找实现这一目标的最佳方式的输入-任何输入和/或片段/示例都将不胜感激。

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

如果您想要更大的灵活性,使用LINQ很容易做到这一点。

var pageSize = 25;
var pageNum = 1;
var currentPage = Directory.GetFiles("dir_path").Skip((pageNum - 1) * pageSize).Take(pageSize);
// Do something with the results.

在每个next/prev上减少/增加pageNum(只需确保将最大页数考虑在内)。

您还可以包括其他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);