65.9K
CodeProject 正在变化。 阅读更多。
Home

电子书架

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.50/5 (4投票s)

2010年4月5日

MIT

1分钟阅读

viewsIcon

35382

downloadIcon

1210

电子书架的工作方式类似于资源管理器

EbookShelf_1.0.6.png

引言

EbookShelf 充当资源管理器。它扫描可通过 config.ini 编辑的目录,以生成动态 treeview。当点击树节点时,它也会扫描该目录下的文件以生成动态 listview。文件可以从 listview 拖动到 treeview。目录可以在 treeview 部分中拖动/放置。文件可以重命名和删除,目录也可以重命名、删除和创建子目录。listview 以小图标视图显示,因此需要先触发大图标视图,然后再触发小图标视图,以解决小图标重叠问题。

Using the Code

动态生成的目录 treeView

  1. 声明 Thread 处理程序 objTreeViewInitThread
    Thread objTreeViewInitThread = null; 
  2. 使用回调函数指针 m_treeViewInitProc 创建 thread 处理程序
    objTreeViewInitThread = new Thread(MainForm.m_treeViewInitProc);
    objTreeViewInitThread.IsBackground = true;
    objTreeViewInitThread.Start(this);
    objTreeViewInitThread.Join(); 
  3. 递归遍历目录树
    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 成员开发的 IniParserIconListManagerSHFileOperation ,用于将文件和目录删除到回收站,我能够如此快速地完成这些工作 ^_^。

历史

  • 1.0.6
    • 函数
      • 编辑 config.ini 设置目录
      • 支持创建、编辑、删除和拖放类别
      • 支持编辑、删除和拖放文件
      • 支持按类型和名称排序
    • BUG
      • 当在应用程序外部编辑时,无法刷新目录 treeview 或文件 listview
      • 拖放类别时,目标放置节点不会高亮显示
      • 先点击按名称排序,然后点击按类型排序,则无法按类型排序
© . All rights reserved.