当前注册人数378610人 邮箱: 密码: 注册新用户 忘记密码
首页 C/C++/MFC C# ASP.NET VB.NET MATLAB Android   站内搜索 下载代码说明/积分规则
为什么要注册?

1. 可以直接免费从本站下载代码,防止邮件发送不到您的邮箱,或登录不了国外网站

2. 可以设定关键字,当有您关心的代码收录时,邮件通知您

3. 对这里的代码进行评分和评论

4. 可以和大家一起分享你的源代码,得到更多的建议

Search All Files' Content in a Folder Recursively

文件夹中所有文件中的内容搜索源代码

2007年12月08日
Windows, Form, C#, .NET
该程序遍历设定好的文件夹下所有文件,及其下所有各级子目录的文件。检索文本文件,并匹配输入的字符串。支持区分大小写。
相关知识
Regex m_RegTxt = null;

    // 搜索按钮执行
    private void btnSearch_Click(object sender, EventArgs e)
    {
        listViewSearch.Items.Clear();

        if ((txtDir.Text.Length < 1) || (txtToSearch.Text.Length < 1))
        {
            MessageBox.Show("Set parameters before search!", "Remind", MessageBoxButtons.OK, MessageBoxIcon.Information);
            return;
        }

        if(cboxCase.Checked)
            m_RegTxt = new Regex(txtToSearch.Text, RegexOptions.Singleline);
        else
            m_RegTxt = new Regex(txtToSearch.Text, RegexOptions.Singleline|RegexOptions.IgnoreCase);

        m_RootDir = txtDir.Text;

        try
        {
            SearchDir(txtDir.Text);
        }
        catch (Exception exp)
        {
            MessageBox.Show(exp.Message, "Exception Found", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

        lblStatus.Text = "Status: Search end.";
    }

    // 搜索指定文件夹,并递归搜索其子文件夹
    private void SearchDir(string dir)
    {
        lblStatus.Text = "Search DIR: " + dir;
        string[] arrFolders = new string[0];
        string[] arrFiles = new string[0];

        try
        {
            arrFolders = Directory.GetDirectories(dir);
            arrFiles = Directory.GetFiles(dir);
        }
        catch
        {
            MessageBox.Show("Please set the correct Directory Path", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            return;
        }

        for(int i=0; i"Search DIR: " + dir;

        // search the files
        for(int i=0; i// 搜索特定的文件
    private void SearchFile(string file)
    {
        StreamReader srFile = File.OpenText(file);
        string line = srFile.ReadLine();
        int lineNo = 1;
        string fileName = string.Empty;
        int iIndex = 0;
        iIndex = file.LastIndexOf('\\');
        if(iIndex < 0)
            iIndex = file.LastIndexOf('/');
        if (iIndex < 0)
            iIndex = 0;
        fileName = file.Substring(iIndex);
        Match match = null;
        int iRootDirLen = m_RootDir.Length;

        while (line != null)
        {
            // match
            match = m_RegTxt.Match(line);
            if (match.Success)
            {
                // add to list
                ListViewItem lvItem = new ListViewItem(new string[] { 
                                fileName,
                                lineNo.ToString() , 
                                line.Substring(match.Index, line.Length-match.Index>51?50:line.Length-match.Index),
                                file.Substring(iRootDirLen)
                                });
                listViewSearch.Items.Add(lvItem);
            }

            line = srFile.ReadLine();
            ++lineNo;
        }

        srFile.Close();
        srFile.Dispose();
        srFile = null;
    }
源代码原文下载:
Source link has yet to be found. Please, try to download it from local website.

源码图片

点击链接查看大图
从本站下载附件及源代码(1个附件,已经成功下载467次)

最值得关注的外文源代码

Generic TCP/IP Client/Server
custom drag and drop script
Location Aware Phone Book
Free source Code for using Google AJAX Search API, and some DHTML
</