使用分页和alpha搜索列出目录中的文件
本文关键字:文件 分页 alpha 搜索 | 更新日期: 2023-09-27 18:27:26
我正在制作一个小脚本,该脚本将从服务器上的预定义文件夹中获取所有文件,用寻呼机和[a]、[B]等导航方式列出并按名称排序。
我的想法是循环浏览所有文件,并将它们放在Array/List/Directonary(?)中,然后制作Gridview/Datagrid/Listview(?)来显示文件,并处理默认分页。
在上述基础上寻找实现这一目标的最佳方式的输入-任何输入和/或片段/示例都将不胜感激。
如果您想要更大的灵活性,使用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操作,如orderby
、where
、select
、groupby
、join
等。
根据您的评论:
在上面的示例中,您可以调用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);