电子书架






4.50/5 (4投票s)
电子书架的工作方式类似于资源管理器

引言
EbookShelf 充当资源管理器。它扫描可通过 config.ini 编辑的目录,以生成动态 treeview
。当点击树节点时,它也会扫描该目录下的文件以生成动态 listview
。文件可以从 listview
拖动到 treeview
。目录可以在 treeview
部分中拖动/放置。文件可以重命名和删除,目录也可以重命名、删除和创建子目录。listview
以小图标视图显示,因此需要先触发大图标视图,然后再触发小图标视图,以解决小图标重叠问题。
Using the Code
动态生成的目录 treeView
- 声明
Thread
处理程序objTreeViewInitThread
Thread objTreeViewInitThread = null;
- 使用回调函数指针
m_treeViewInitProc
创建thread
处理程序objTreeViewInitThread = new Thread(MainForm.m_treeViewInitProc); objTreeViewInitThread.IsBackground = true; objTreeViewInitThread.Start(this); objTreeViewInitThread.Join();
- 递归遍历目录树
private void m_ListDirectory(TreeNode Parent, DirectoryInfo dir) { if (!dir.Exists) return; DirectoryInfo[] ChildDirectory; TreeNode node = new TreeNode(); node.Name = dir.FullName; // Directory full path node.Text = dir.Name; // Directory folder name if (null == Parent) { treeView.Nodes.Add(node); } else { Parent.Nodes.Add(node); } ChildDirectory = dir.GetDirectories(); foreach (DirectoryInfo dirInfo in ChildDirectory) { m_ListDirectory(node, dirInfo); } }
关注点
感谢 CodeProject 成员开发的 IniParser
、IconListManager
和 SHFileOperation
,用于将文件和目录删除到回收站,我能够如此快速地完成这些工作 ^_^。
历史
- 1.0.6
- 函数
- 编辑 config.ini 设置目录
- 支持创建、编辑、删除和拖放类别
- 支持编辑、删除和拖放文件
- 支持按类型和名称排序
- BUG
- 当在应用程序外部编辑时,无法刷新目录
treeview
或文件listview
- 拖放类别时,目标放置节点不会高亮显示
- 先点击按名称排序,然后点击按类型排序,则无法按类型排序