31 agosto 2012

Busca Textual usando C#

Este código mostra como implementar, usando c#, uma buscar textual simples.
public StringBuilder LocalizarTermoEmArquivos(string termo, string diretorio)
    {
        StringBuilder sbTermosLocalizados = new StringBuilder();

        //pega o diretório em que a busca será realizada
        DirectoryInfo dirInfo = new DirectoryInfo(diretorio);

        /*
        * Recupera dentro do diretório todos os arquivos
        * a opção "SearchOption.AllDirectories" solicita a busca em todos os subdiretórios, se existirem
        */
        FileInfo[] fileInfo = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);
        int numeroDaLinha = 0;

        foreach (FileInfo f in fileInfo)
        {
            using (StreamReader sr = new StreamReader(f.FullName))
            {
                while (!sr.EndOfStream)
                {
                    string linha = sr.ReadLine();
                    numeroDaLinha++;

                    if (linha.IndexOf(termo) >= 0)
                    {
                        //adiciona os arquivos onde o termo foi encontrado e as respectivas linhas dentro de cada arquivo
                        sbTermosLocalizados.AppendLine(f.FullName + " --> " + "linha: " + numeroDaLinha);
                    }

                }
                numeroDaLinha = 0;
                sr.Close();
            }
        }
        //retorna o resultado da pesquisa
        return sbTermosLocalizados;
    }
Até a próxima. ;)

Nenhum comentário:

Postar um comentário