c#作的查找文件夹内内容的小工具

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

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

先添加了界面this

 

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

private void Form1_Load(object sender, EventArgs e)blog

        {                       博客

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

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

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

            dt.Columns.Add(d1);object

            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;

        },

好了,看下效果

 

相关文章
相关标签/搜索