转载:http://www.cnblogs.com/zhbsh/archive/2011/05/26/2057733.html

  1. #region treeview 绑定文件夹和文件
  2.  
  3. /// <summary>
  4. /// 根据文件夹绑定到树
  5. /// </summary>
  6. /// <param name="treeview"></param>
  7. /// <param name="FilePath"></param>
  8. /// <returns></returns>
  9. public bool SetTreeNoByFilePath(TreeView treeview, string FilePath,ImageList imgs)
  10. {
  11. treeview.Nodes.Clear();
  12. treeview.ImageList = imgs;
  13. try
  14. {
  15. foreach (DirectoryInfo direc in new DirectoryInfo(FilePath).GetDirectories())
  16. {
  17. TreeNode tn = new TreeNode(direc.Name);
  18. tn.Text = direc.FullName;
  19. SetTreeNodeIco(tn, "dir",imgs);
  20. tn.Tag = direc.FullName;
  21. SetSubDirectoryTreenode(direc, tn,imgs);
  22. treeview.Nodes.Add(tn);
  23.  
  24. }
  25. foreach (FileInfo finfo in new DirectoryInfo(FilePath).GetFiles())
  26. {
  27. TreeNode temptreenode = new TreeNode(finfo.Name);
  28. temptreenode.Tag = finfo.FullName;
  29. temptreenode.Text = finfo.Name;
  30. SetTreeNodeIco(temptreenode, finfo.Extension, imgs);
  31. treeview.Nodes.Add(temptreenode);
  32. }
  33.  
  34. return true;
  35. }
  36. catch
  37. {
  38. return false;
  39.  
  40. }
  41.  
  42. }
  43. /// <summary>
  44. /// 设置子目录的
  45. /// </summary>
  46. /// <param name="direc">目录路径</param>
  47. /// <param name="tn"></param>
  48. /// <param name="imglist"></param>
  49. private void SetSubDirectoryTreenode(DirectoryInfo direc, TreeNode tn,ImageList imglist)
  50. {
  51. foreach (DirectoryInfo dir in new DirectoryInfo(direc.FullName).GetDirectories())
  52. {
  53. TreeNode temptn = new TreeNode(dir.Name);
  54. temptn.Tag = dir.FullName;
  55. SetTreeNodeIco(temptn, "dir", imglist);
  56. temptn.Text = dir.Name;
  57. tn.Nodes.Add(temptn);
  58. foreach (FileInfo fileinfo in new DirectoryInfo(dir.FullName).GetFiles())
  59. {
  60. TreeNode temptreenode = new TreeNode(fileinfo.Name);
  61. temptreenode.Tag = fileinfo.FullName;
  62. temptreenode.Text = fileinfo.Name;
  63. SetTreeNodeIco(temptreenode, fileinfo.Extension,imglist);
  64. temptn.Nodes.Add(temptreenode);
  65.  
  66. }
  67. SetSubDirectoryTreenode(dir, temptn, imglist);
  68.  
  69. }
  70. }
  71.  
  72. /// <summary>
  73. /// 为treeview设置小图标
  74. /// </summary>
  75. /// <param name="tn"></param>
  76. /// <param name="strExt"></param>
  77. /// <param name="imgs"></param>
  78. private void SetTreeNodeIco(TreeNode tn, string strExt, ImageList imgs)
  79. {
  80. string ext = strExt.Replace(".", "");
  81. if (ext.ToLower() == "dir")
  82. {
  83. tn.ImageIndex = imgs.Images.IndexOfKey("close");
  84. tn.SelectedImageIndex = imgs.Images.IndexOfKey("open");
  85. }
  86. else if (ext.ToLower() == "doc" || ext.ToLower() == "rar" || ext.ToLower() == "txt")
  87. {
  88. tn.ImageIndex = imgs.Images.IndexOfKey(ext);
  89. tn.SelectedImageIndex = imgs.Images.IndexOfKey(ext);
  90. }
  91. else
  92. {
  93. tn.ImageIndex = imgs.Images.IndexOfKey("other");
  94. tn.SelectedImageIndex = imgs.Images.IndexOfKey("other");
  95. }
  96. }
  97.  
  98. #endregion
  99.  
  100. #region 只绑定文件夹
  101.  
  102. /// <summary>
  103. /// 根据文件夹绑定到树
  104. /// </summary>
  105. /// <param name="treeview"></param>
  106. /// <param name="FilePath"></param>
  107. /// <returns></returns>
  108. public bool SetTreeNoByFilePath(TreeView treeview, string FilePath)
  109. {
  110. treeview.Nodes.Clear();
  111.  
  112. try
  113. {
  114. foreach (DirectoryInfo direc in new DirectoryInfo(FilePath).GetDirectories())
  115. {
  116. TreeNode tn = new TreeNode(direc.Name);
  117. tn.Text = direc.FullName;
  118.  
  119. tn.Tag = direc.FullName;
  120. SetSubDirectoryTreenode(direc, tn);
  121. treeview.Nodes.Add(tn);
  122.  
  123. }
  124. return true;
  125. }
  126. catch
  127. {
  128. return false;
  129.  
  130. }
  131.  
  132. }
  133. /// <summary>
  134. /// 设置子目录的
  135. /// </summary>
  136. /// <param name="direc">目录路径</param>
  137. /// <param name="tn"></param>
  138. /// <param name="imglist"></param>
  139. private void SetSubDirectoryTreenode(DirectoryInfo direc, TreeNode tn)
  140. {
  141. foreach (DirectoryInfo dir in new DirectoryInfo(direc.FullName).GetDirectories())
  142. {
  143. TreeNode temptn = new TreeNode(dir.Name);
  144. temptn.Tag = dir.FullName;
  145. temptn.Text = dir.Name;
  146. tn.Nodes.Add(temptn);
  147. foreach (FileInfo fileinfo in new DirectoryInfo(dir.FullName).GetFiles())
  148. {
  149. TreeNode temptreenode = new TreeNode(fileinfo.Name);
  150. temptreenode.Tag = fileinfo.FullName;
  151. temptreenode.Text = fileinfo.Name;
  152.  
  153. temptn.Nodes.Add(temptreenode);
  154.  
  155. }
  156. SetSubDirectoryTreenode(dir, temptn);
  157.  
  158. }
  159. }
  160.  
  161. #endregion

winform treeview 绑定文件夹和文件的更多相关文章

  1. VBA读取文件夹下所有文件夹及文件内容,并以树形结构展示

    Const TR_LEVEL_MARK = "+"Const TR_COL_INDEX = "A"Const TR_COL_LEVEL = "E&qu ...

  2. asp.net 检查文件夹和文件是否存在

    原文  asp.net 检查文件夹和文件是否存在 允许 path 参数指定相对或绝对路径信息. 相对路径信息被解释为相对于当前工作目录. 检查该目录是否存在之前,从 path 参数的末尾移除尾随空格. ...

  3. 使用FileSystemWatcher监控文件夹及文件

    引言 这一周主要精力集中学习一个同事开发的本地文件搜索项目上,其中客户端添加共享文件时主要是使用FileSystemWatcher 监控文件,并在各种事件发生时向服务器发送消息. 解决方法 FileS ...

  4. Visual Studio(VS2012) Project&(Solution) 虚拟文件夹 & 物理文件夹

    今天发生个怪事:在 Solution Explorer 中,x project 内建立文件夹(folder)时,同时在磁盘目录下也创建了同名的文件夹. 1, 原本:应该只是创建一个“虚拟文件夹”用来“ ...

  5. TortoiseSVN文件夹及文件图标不显示解决方法

              由于自己的电脑是win7(64位)的,系统安装TortoiseSVN之后,其他的功能都能正常的使用,但是就是文件夹或文件夹的左下角就是不显示图标,这个问题前一段时间就遇到了(那个时 ...

  6. python 实现彻底删除文件夹和文件夹下的文件

    python 中有很多内置库可以帮忙用来删除文件夹和文件,当面对要删除多个非空文件夹,并且目录层次大于3层以上时,仅使用一种内置方法是无法达到彻底删除文件夹和文件的效果的,比较low的方式是多次调用直 ...

  7. Projects\Portal_Content\Indexer\CiFiles文件夹下文件占用磁盘空间过大问题。

    C:\Program Files\Microsoft Office Servers\12.0\Data\Office Server\Applications\9765757d-15ee-432c-94 ...

  8. android 获取文件夹、文件的大小 以B、KB、MB、GB 为单位

    android 获取文件夹.文件的大小 以B.KB.MB.GB 为单位   public class FileSizeUtil { public static final int SIZETYPE_B ...

  9. C#操作文件夹及文件的方法的使用

    本文收集了目前最为常用的C#经典操作文件的方法,具体内容如下:C#追加.拷贝.删除.移动文件.创建目录.递归删除文件夹及文件.指定文件夹下面的所有内容copy到目标文件夹下面.指定文件夹下面的所有内容 ...

随机推荐

  1. 链接oracle数据库 生成表对应的javabean

    package com.databi.utils; import java.io.File; import java.io.FileOutputStream; import java.io.IOExc ...

  2. HDFS的xshell及dfsadmin命令

    一. DFS:distributied file system 是一种允许文件通过网络在多台主机上风向的文件系统,可让多机器上的多用户分享文件和存储空间 二.HDFS的shell **切记后面加的 / ...

  3. 【BZOJ2818】Gcd [莫比乌斯反演]

    Gcd Time Limit: 10 Sec  Memory Limit: 256 MB[Submit][Status][Discuss] Description 给定整数N,求1<=x,y&l ...

  4. 02-导航实例-storyboard实现

        源代码下载链接:02-导航实例-storyboard实现.zip38.5 KB // MJAboutViewController.h // //  MJAboutViewController. ...

  5. JavaScript DOM编程艺术 读书笔记

    2. JavaScript语法 2.1 注释      HTML允许使用"<!--"注释跨越多个行,但JavaScript要求这种注释的每行都必须在开头加上"< ...

  6. 使用SpringMVC解决Ajax跨域问题

    package com.mengyao.system.filter; import java.io.IOException; import javax.servlet.FilterChain; imp ...

  7. selenium与360极速浏览器driver配置

    1)下载浏览器对应的driver,浏览器版本与driver对应关系,网址:http://www.cnblogs.com/JHblogs/p/7699951.html:driver下载地址:http:/ ...

  8. spring boot jar 进程自动停止,自动终止,不能后台持续运行

    第一次部署spring boot 到linux上,用命令java -jar **.jar,发现应用自动退出,进程停止了.后来发现要不挂断的执行命令,忽略所有的挂断信号,用以下命令解决 nohup ja ...

  9. 【SQL】约束与触发器1

    一.外键 1.1特点 表A的外键,一定是其他某个表B的主键或有UNIQUE声明的属性. A的外键的值,一定是对应表B中相应的属性值.(空值除外) 1.2声明方法 方法1:属性名 类型 REFERENC ...

  10. Selenium2+python自动化65-js定位几种方法总结【转载】

    前言 本篇总结了几种js常用的定位元素方法,并用js点击按钮,对input输入框输入文本 一.以下总结了5种js定位的方法 除了id是定位到的是单个element元素对象,其它的都是elements返 ...