1. #region 依据目录填充树视图
  2.  
  3. /// <summary>
  4. /// 依据文件夹目录,填充树视图
  5. /// </summary>
  6. /// <param name="dirPath">跟目录路径</param>
  7. /// <param name="loopflag">是否循环子文件夹</param>
  8. public void FillTreeView(TreeView treeView, string dirPath, bool loopflag)
  9. {
  10.  
  11. try
  12. {
  13. // 检查目标目录是否以目录分割字符结束如果不是则添加之
  14. if (dirPath[dirPath.Length - 1] != System.IO.Path.DirectorySeparatorChar)
  15. {
  16. dirPath += System.IO.Path.DirectorySeparatorChar;
  17. }
  18.  
  19. // 判断目标目录是否存在如果不存在则新建之
  20. if (!System.IO.Directory.Exists(dirPath))
  21. {
  22. DialogResult result = MessageBox.Show(dirPath + " 目录不存在是否创建?", "提示", MessageBoxButtons.YesNo);
  23. if (DialogResult.Yes == result)
  24. {
  25. System.IO.Directory.CreateDirectory(dirPath);
  26. }
  27. else
  28. {
  29. return;
  30. }
  31. }
  32.  
  33. treeView.Nodes.Clear();
  34.  
  35. //string tempPath = dirPath.Substring(0, dirPath.Length - 1);
  36. //string dir = tempPath.Substring(tempPath.LastIndexOf(System.IO.Path.DirectorySeparatorChar), tempPath.Length);
  37.  
  38. TreeNode rootNode = new TreeNode();
  39. rootNode.Text = dirPath;
  40. rootNode.Tag = dirPath;
  41. treeView.Nodes.Add(rootNode);
  42.  
  43. string[] fileList = null;
  44. if (!loopflag)
  45. {
  46. // 如果你指向copy目标文件下面的文件而不包含目录请使用下面的方法
  47. fileList = Directory.GetFiles(dirPath);
  48. }
  49. else
  50. {
  51. // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
  52. fileList = System.IO.Directory.GetFileSystemEntries(dirPath);
  53. }
  54.  
  55. AddNodes(rootNode, fileList, loopflag);
  56. }
  57.  
  58. catch (Exception ex)
  59. {
  60. MessageBox.Show("目录树视图显示失败! " + ex);
  61. //throw;
  62. }
  63. }
  64.  
  65. public void AddNodes(TreeNode parentNode, string[] fileList, bool loopflag)
  66. {
  67. try
  68. {
  69. // 遍历所有的文件和目录
  70. foreach (string file in fileList)
  71. {
  72. TreeNode nowNode = new TreeNode();
  73.  
  74. string filename = file.Substring(file.LastIndexOf(System.IO.Path.DirectorySeparatorChar));
  75. nowNode.Text = filename;
  76. //nowNode.Text = file;
  77. nowNode.Tag = file;
  78. parentNode.Nodes.Add(nowNode);
  79.  
  80. if (System.IO.Directory.Exists(file))
  81. {
  82. string[] fllist = System.IO.Directory.GetFileSystemEntries(file);
  83. AddNodes(nowNode, fllist, loopflag);
  84. }
  85. }
  86. }
  87. catch (System.Exception ex)
  88. {
  89. throw ex;
  90. }
  91. }
  92.  
  93. #endregion

C#:依据目录填充树视图的更多相关文章

  1. C#:将空间数据加载到树视图控件

    自己 整理了 下 代码 测试了下 还行... #region 操作树视图控件 /// <summary> /// 自定义需要的类型 /// </summary> enum Da ...

  2. SAP CRM 树视图(TREE VIEW)

    树视图可以用于表示数据的层次. 例如:SAP CRM中的组织结构数据可以表示为树视图. 在SAP CRM Web UI的术语当中,没有像表视图(table view)或者表单视图(form view) ...

  3. MVC 多级目录(控制器) 路由重写 及 多级Views目录 的寻找视图的规则

    转自:[原]Asp.net Mvc   多级控制器 路由重写 及 多级Views目录 的寻找视图的规则 asp.net mvc 为了更好的控制views的页面存放,和控制器的可读性,需要分开多级目录来 ...

  4. Cocos2d-x 坑之一:Xcode文件真实目录与工程视图目录

    Cocos2d-x一定要保证 Xcode文件真实目录与工程视图目录 的一致性,不然,会出现文件读取不了,或include不了的情况. 如果出现此类情况,优先查看真实目录的结构.

  5. SharePoint 创建网站地图树视图及格式枚举截图

    SharePoint 创建网站地图树视图及格式枚举截图         SharePoint首页隐藏掉左側导航以后,假设要以树视图呈现站点地图也非常easy.         仅仅须要复制v4.mas ...

  6. WinForm 数据库无限填充树目录 treeView

    我自己想的是处理数据库每一条数据,然后来插入子节点的子节点. 奈何没有插入子节点的子节点的办法,百度来百度去,一看全都是递归. 本来我是绝望的, 但是没办法,老板的需求不能驳回啊,于是就来ctrl c ...

  7. shell 生成目录的树状视图、生成文件及子目录的汇总信息

    -exec 创建子shell $ find . -exec sh -c 'echo -n {} | tr -d "[:alnum:]_.\-" | \ tr "/&quo ...

  8. Asp.net Mvc 多级控制器 路由重写 及 多级Views目录 的寻找视图的规则 (多级路由) 如:Admin/Test/Index

    http://blog.csdn.net/buhuan123/article/details/26387427 目录(?)[-] 1那么我们再来看我们需要的访问方式如下图 razor视图的地址写成通配 ...

  9. Yii 1.1.17 一、安装、目录结构、视图、控制器、扩展自定义函数

    这几天了解了一下Yii框架,以简单的博客项目实战入门.大致的实现流程做个记录. 一.Yii 安装与环境检测 从 www.yiiframework.com 获取一份Yii的拷贝,解压到 /wwwroot ...

随机推荐

  1. 【张宴】PHP在金山游戏运营中的应用

    PPT下载地址1(国外服务器):http://blog.s135.com/attachment/201105/2011phptc_zy.zip PPT下载地址2(国内服务器):http://ishar ...

  2. UnsupportedOperationException:can&#39;t convert to dimension :typx=0x1

    at android.content.res.TypeArray.getDimensionPixelSize(TypeArray.java:463) 今天在给项目做适配执行项目时遇到这个错误,发生错误 ...

  3. Java设计模式菜鸟系列(十七)桥接模式建模与实现

    转载请注明出处:http://blog.csdn.net/lhy_ycu/article/details/40008711 桥接模式(Bridge): 把事物和其详细实现分开(抽象化与实现化解耦),使 ...

  4. 玩转windowbuilder pro

    windowbuilder,也就是原来的SWT Designer.Google收购了Instantiations,把它的工具也重新免费发布了. 下载地址:http://www.eclipse.org/ ...

  5. win7 64位的 svchost.exe 占用内存过大的问题

    svchost.exe 是用来启动系统服务的,所以某个 svchost.exe 占用内存过大,可能就是它启动的那个服务占用内存过大,所以只要停止并禁用那个服务就行了. 一般来说占用内存最大的服务是 S ...

  6. 使用Intellij加载Spark源代码

    如何使用Intellij加载Spark源代码 转载注明原文http://www.cnblogs.com/shenh062326/p/6189643.html 查看Spark源代码或修改Spark源代码 ...

  7. windows删除或修改本地Git保存的账号密码

    windows删除或修改本地Git保存的账号密码 学习了:https://blog.csdn.net/xudailong_blog/article/details/78798118 (一)进入控制面板 ...

  8. redis在linux下安装并測试(在spring下调用)

    官网帮助文档例如以下 Installation Download, extract and compile Redis with: $ wget http://download.redis.io/re ...

  9. 【ichartjs】爬取理想论坛前30页帖子获得每个子贴的发帖时间,总计83767条数据进行统计,生成统计图表

    统计数据如下: {': 2451} 图形化后效果如下: 源码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//E ...

  10. 阅读《Android 从入门到精通》(24)——切换图片

    切换图片(ImageSwitcher) java.lang.Object; android.view.View; android.widget.ViewGroup; android.widget.Fr ...