第一次写博客有点激动啊QAQ

  来新单位,一直没活干,公司代码控制器太多,其中有很多文件夹,每次找一个控制器都老找不到,我又不愿意用VS的全局搜索,想着没事就做了个查找控制器的小工具。代码如下:

先添加了界面

在pagelode里首先需要构建一张虚拟表

private void Form1_Load(object sender, EventArgs e)

{

DataColumn d1 = new DataColumn("ID", typeof(int));

DataColumn d2 = new DataColumn("Name", typeof(string));

DataColumn d3 = new DataColumn("PID", typeof(string));

dt.Columns.Add(d1);

dt.Columns.Add(d2);

dt.Columns.Add(d3);

}

之后再创建确定按钮的代码,确定是说查找路径。。

private void button2_Click(object sender, EventArgs e)

{

if (treeView1.Nodes.Count != 0)

treeView1.Nodes.Clear();

string path = txtSeachFolder.Text;

try

{

//if (path != "")

if(path.Trim()=="")

{

path = @"D:\Project\SourceCode\CFLD.PMS_v2.0\CFLD.PMS.Web\Controllers";

FindFile(path);

}

else if (path != "")

{

FindFile(path);

}

else

MessageBox.Show("请输入路径");

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

}

这里面的findfile是用来填充树控件的,具体代码是

public void FindFile(string dirPath)

{

DataRow[] rows = dt.Select("ID=-1");

DirectoryInfo di=new DirectoryInfo(dirPath);

var folder = di.GetDirectories();

List<string> conNames = new List<string>();

if (folder.Count() != 0)

{

#region 文件夹

try

{

int i = 0;

foreach (var item in folder)

{

TreeNode tn = new TreeNode();

DataRow dr = dt.NewRow();

dr["ID"] = i;

dr["Name"] = item.Name;

dr["PID"] = i;

dt.Rows.Add(dr);

tn.Tag = dr;

tn.Text = item.Name;

foreach (var item1 in item.GetFiles())

{

TreeNode tn1 = new TreeNode();

tn1.Text = item1.Name;

tn.Nodes.Add(tn1);

}

treeView1.Nodes.Add(tn);

listBox1.Items.Add(item.Name);

i++;

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

#endregion

}

else

{

try

{

int j = 0;

var files = di.GetFiles();

foreach(var item in files)

{

TreeNode tn = new TreeNode();

DataRow dr = dt.NewRow();

dr["ID"] = j;

dr["Name"] = item.Name;

dr["PID"] = j;

dt.Rows.Add(dr);

tn.Tag = dr;

tn.Text = item.Name;

treeView1.Nodes.Add(tn);

listBox1.Items.Add(item.Name);

j++;

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

}

}

在之后是查找的代码

private void button1_Click(object sender, EventArgs e)

{

bool b = false;

string value = txtSearch.Text;

this.treeView1.CollapseAll();

foreach (TreeNode node in this.treeView1.Nodes)

{

b= nextnodes(node, value);

if (b)

break;

}

if (!b)

MessageBox.Show("没有查到");

}

这里面的nextnode是用来确定查找到的节点位置的,具体代码是

public bool nextnodes(TreeNode node, string text)

{

foreach (TreeNode tn in node.Nodes)

{

if(tn.Text.ToUpper().Contains(text.ToUpper().Trim()))

{

tn.BackColor = Color.Green; //改变查找到的节点背景色;

if (tn.Parent != null)

tn.Parent.Expand(); //展开服节点

return true;

}

}

return false;

},

好了,看下效果

c#做的查找文件夹内内容的小工具的更多相关文章

  1. Ubuntu 查找文件夹中内容包含关键字的文件,路径为当前文件夹

    From CSDN http://blog.csdn.net/lizhenmingdirk/article/details/44834997 grep -rl "keyword" ...

  2. Linux批量替换文本,文件夹内所有文本内容

    1.替换文件夹内所有文件匹配的字符串 sed -i "s/旧内容/新内容/g" `grep 旧内容 -rl 文件夹路径` 例如将/var/www/test文件夹下的所有文件内容中的 ...

  3. 编写Java程序,在一个文件夹内,查找占用磁盘空间最大的 jpg 文件,并输出文件大小

    查看本章节 查看作业目录 需求说明: 在一个文件夹内,查找占用磁盘空间最大的 jpg 文件,并输出文件大小 实现思路: 创建ImageFileFilter类实现FilenameFilter接口,且重写 ...

  4. shell脚本实现查找文件夹下重复的文件,并提供删除功能

    Windows下有软件FindDupFile,可以搜索指定目录及其下子目录,列出所有内容完全相同的文件(文件名可能不同),然后由用户选择删除重复的文件. 然而shell脚本却可以使用几行的命令完成与此 ...

  5. ftp下载目录下所有文件及文件夹内(递归)

    ftp下载目录下所有文件及文件夹内(递归)   /// <summary> /// ftp文件上传.下载操作类 /// </summary> public class FTPH ...

  6. 批量生成文件夹内所有文件md5

    说明:md5批量生成批处理脚本,无需安装任何软件,直接调用系统文件进行生成,简单基于windows命令编写了一个批量生成md5值的脚本. 使用说明:新建文本文档,命名为get_md5.bat,直接将代 ...

  7. apache环境下禁止某文件夹内运行PHP脚本、禁止访问文件或目录执行权限的设置方法

    apache环境下禁止某文件夹内运行PHP脚本.禁止访问文件或目录执行权限的设置方法   首先我们来看两段对上传目录设置无权限的列子,配置如下: <Directory "要去掉PHP执 ...

  8. linux查找文件夹下的全部文件里是否含有某个字符串

    查找文件夹下的全部文件里是否含有某个字符串  find .|xargs grep -ri "IBM"  查找文件夹下的全部文件里是否含有某个字符串,而且仅仅打印出文件名称  fin ...

  9. ls命名 | Linux统计文件夹内的文件个数

    ls命名 man ls -R 递归列出全部的目录内容 recusive -a 列出所有的文件(包括以 . 开头的隐藏文件) all -r 逆序排列 reverse -t 按照时间信息排序 time - ...

随机推荐

  1. 借助百度云API进行人脸识别

    前言:本篇博客是笔者第一次使用百度云api进行人脸检测,主要内容包括两部分,一是获取接口,二是借助接口进行人脸检测.笔者也是初步了解这方面的内容,也是参考了杂七杂八的博文,内容可能存在错误及其他毛病, ...

  2. C# Winform中自定义筛选及自带统计行的Datagridview控件

    网上分享有很多种自制DGV控件,都有不小的缺陷. 没办法,按需求自己定制了一个. 一.过滤方面类似于Excel的筛选功能.支持右键菜单筛选,同时也支持在文本框输入文字按焦点列进行筛选: 二.统计行我采 ...

  3. 【bzoj4817】树点涂色 LCT+线段树+dfs序

    Description Bob有一棵n个点的有根树,其中1号点是根节点.Bob在每个点上涂了颜色,并且每个点上的颜色不同.定义一条路 径的权值是:这条路径上的点(包括起点和终点)共有多少种不同的颜色. ...

  4. 【Es】jest操作elasticsearch

    https://blog.csdn.net/niuchenliang524/article/details/82869319 操作es的客房端有多个,在此例出三种(具体区别自行百度),本文讲的是jes ...

  5. 【问题记录】Python运行报错:can only concatenate str (not "int") to str

    自己总是写程序时候用 + 拼接的时候忘记变量类型要一致,如下面 frame_num = "1" for i in range(1, frame_num + 1, 1): self. ...

  6. struts2学习笔记(二)—— struts2的架构【转】

    一.系统架构   Struts2的官方文档附带了Struts2的架构图. 从这张图能够非常好的去理解Struts2 关于图中的Key: Servlet Filters:过滤器链,client的全部请求 ...

  7. ubuntu画面延迟问题解决

    新配的电脑,安装ubuntu16.04以后,出现画面延迟的问题,尤其浏览网页的时候画面十分卡顿.用free命令查看过可用内存6.多G,经过询问大概是显卡问题,然后在https://ubuntuforu ...

  8. 【KMP】洛谷P2375 [NOI2014]动物园 题解

        一开始的方向应该对了,但是没有想到合理的优化还是没写出来…… 题目描述 近日,园长发现动物园中好吃懒做的动物越来越多了.例如企鹅,只会卖萌向游客要吃的.为了整治动物园的不良风气,让动物们凭自己 ...

  9. P3066 [USACO12DEC]逃跑的BarnRunning Away From (树上二分)

    题意 给出以1号点为根的一棵有根树,问每个点的子树中与它距离小于等于l的点有多少个. 树上二分.这个做法还是基于树上差分的,也就是对于每一个点uu,我们要找到它向上跳LL的长度最高能够跳到的祖先.(当 ...

  10. webstrom 搭建 nodejs

    1.安装好 nodejs .下载地址 http://nodejs.org/#download,一路next,位置自己定,直到完成. 2.安装好 webstorm.官网下载,破解方法很多,自己搜吧. 3 ...