protected void OnArquivoEncontrado(EntradaEncontrada entrada) { if (InternalCancelado) { return; } if (ArquivoEncontrado != null) { ArquivoEncontradoEventArgs args = new ArquivoEncontradoEventArgs(entrada); OnArquivoEncontrado(args); } }
protected void PesquisarDiretorio(string diretorioPai) { if (InternalCancelado) { return; } OnMensagemProgresso(diretorioPai); if (InternalCancelado) { return; } string[] listaArquivos; try { listaArquivos = Directory.GetFiles(diretorioPai, Contexto.NomeArquivo); } catch (Exception ex) { Logger.Default.LogAviso(String.Format( "Diretório {0}. Erro: {1}", diretorioPai, ex.Message)); listaArquivos = null; } if (listaArquivos != null) { foreach (string arquivo in listaArquivos) { if (InternalCancelado) { return; } if (Resultado.Count == Contexto.MaximoDeResultados) { return; } try { EntradaEncontrada entrada = new EntradaEncontrada(arquivo, EntradaEncontrada.eTipoEntrada.eTipoArquivo); if (Contexto.FiltroArquivo != null) { if (!Contexto.FiltroArquivo.Filtrar(this, Contexto, entrada)) { entrada = null; } } if (entrada != null) { Resultado.Add(entrada); OnArquivoEncontrado(entrada); } } catch (Exception ex) { Logger.Default.LogAviso(String.Format( "Arquivo {0}. Erro: {1}", arquivo, ex.Message)); return; } } } if (InternalCancelado) { return; } string[] listaDiretorios; try { listaDiretorios = Directory.GetDirectories(diretorioPai); } catch (Exception ex) { Logger.Default.LogAviso(String.Format( "Diretório {0}. Erro: {1}", diretorioPai, ex.Message)); return; } foreach (string diretorio in listaDiretorios) { if (InternalCancelado) { return; } if (Resultado.Count == MaximoDeResultados) { return; } if (Contexto.IgnorarPastasOcultas) { DirectoryInfo info = new DirectoryInfo(diretorio); if ((info.Attributes & FileAttributes.Hidden) > 0) { continue; } } // Usa o filtro de diretório para retorno o diretório como um resultado // de pesquisa. if (Contexto.FiltroDiretorio != null) { try { EntradaEncontrada entrada = new EntradaEncontrada(diretorio, EntradaEncontrada.eTipoEntrada.eTipoDiretorio); if (Contexto.FiltroDiretorio.Filtrar(this, Contexto, entrada)) { Resultado.Add(entrada); OnArquivoEncontrado(entrada); } } catch (Exception ex) { Logger.Default.LogAviso(String.Format( "Diretório {0}. Erro: {1}", diretorio, ex.Message)); return; } } // pesquisa em todos os diretórios independente do filtro de diretório if (Contexto.UseThreads) { QueuePesquisarDiretorio(diretorio); } else { PesquisarDiretorio(diretorio); } } }
public ArquivoEncontradoEventArgs(EntradaEncontrada entrada) { this.Entrada = entrada; }