protected void Processa()
        {
            string caminho = ckbcaminho.SelectedValue.ToString();

            try
            {
                listResultado.Items.Clear();
                dataGridView1.DataSource = null;
                dataGridView1.Rows.Clear();

                toolStripStatusLabel1.Text = "Iniciando busca de arquivos";
                Application.DoEvents();
                button1.Enabled = false;
                button4.Enabled = !button1.Enabled;

                List <Models.Arquivo> lista = new List <Models.Arquivo>();
                DateTime vlPadrao           = dateTimePicker1.Value;

                //if (checkBox1.Checked)
                //    dateTimePicker1.Value = Convert.ToDateTime("01/01/1900");

                ////Marca o diretório a ser listado
                DirectoryInfo   diretorio = new DirectoryInfo(@caminho);
                FileInfo[]      arquivos  = diretorio.GetFiles("*.*");
                List <FileInfo> infoPasta = arquivos.Where(item => (item.LastWriteTime >= dateTimePicker1.Value) && (Desconsiderar(item.Extension))).ToList();

                //ignorando tipos de arquivos
                infoPasta = infoPasta.ToList();

                DirSearch(@caminho, lista);

                //Começamos a listar os arquivos
                foreach (FileInfo fileinfo in infoPasta.OrderByDescending(a => a.LastWriteTime))
                {
                    Models.Arquivo arq = new Models.Arquivo();

                    FileStream fs = new FileStream(fileinfo.DirectoryName + "\\" + fileinfo.Name, FileMode.Open, FileAccess.Read);
                    Encoding   r  = Utils.Tools.GetFileEncoding(fs);
                    fs.Close();

                    arq.Encoding = r.BodyName;


                    arq.Data     = fileinfo.LastWriteTime;
                    arq.FullName = fileinfo.DirectoryName;
                    arq.Name     = fileinfo.Name;
                    arq.Tamanho  = fileinfo.Length;
                    bool pode = true;


                    //----validação no
                    if (ckcIgEncode.Checked == true)
                    {
                        if (txtEncode.Text != "")
                        {
                            //string xenc;
                            //xenc = txtEncode.Text.Split(',').ToString();

                            string[] result = txtEncode.Text.Split(new char[0], StringSplitOptions.RemoveEmptyEntries);

                            foreach (string s in result)
                            {
                                if (s.ToUpper() == arq.Encoding.ToUpper())
                                {
                                    pode = false;
                                }
                            }
                        }
                    }


                    if (!pode)
                    {
                        break;
                    }
                    else
                    {
                        listResultado.Items.Add(arq.FullName + "\\" + arq.Name + "----" + arq.Data);
                        lista.Add(arq);
                    }

                    toolStripStatusLabel1.Text = fileinfo.Name;
                    Application.DoEvents();
                }

                lista = lista.OrderByDescending(c => c.Data).ToList();
                listResultado.Items.Clear();

                if (lista.Count == 0)
                {
                    MessageBox.Show("Não existem arquivos que correspondam a sua pesquisa", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    toolStripStatusLabel1.Text = "Nenhum arquivo";
                    groupBox1.Enabled          = false;
                    groupBox2.Enabled          = false;
                    groupBox4.Enabled          = false;
                    //MenuExportar.Enabled = false;
                }
                else
                {
                    dataGridView1.AutoGenerateColumns = false;
                    dataGridView1.DataSource          = lista;


                    foreach (Models.Arquivo file in lista)
                    {
                        if (file.FullName != "")
                        {
                            listResultado.Items.Add(file.FullName + "\\" + file.Name + "----" + file.Data);
                        }
                        else
                        {
                            listResultado.Items.Add(file.FullName + "\\" + file.Name + "----" + file.Data);
                        }
                    }
                    groupBox1.Enabled          = true;
                    groupBox2.Enabled          = true;
                    groupBox4.Enabled          = true;
                    toolStripStatusLabel1.Text = lista.Count.ToString() + " Arquivos afetados";
                    Application.DoEvents();
                    dateTimePicker1.Value = vlPadrao;
                }

                button1.Enabled = true;
                button4.Enabled = !button1.Enabled;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Error);
                INI.ExcluirLinha(caminho);
                CarregaCombo();
            }
        }
        protected void DirSearch(string sDir, List <Models.Arquivo> lista)
        {
            string nome = "";

            try
            {
                //Marca o diretório a ser listado
                DirectoryInfo diretorio = new DirectoryInfo(sDir);

                //Executa função GetFile(Lista os arquivos desejados de acordo com o parametro)
                DirectoryInfo[]      pastaBruta = diretorio.GetDirectories();
                List <DirectoryInfo> pastas     = pastaBruta.Where(item => (item.Exists) && DesconsiderarPasta(item.Name)).ToList();

                //if (checkBox1.Checked)
                //    dateTimePicker1.Value = Convert.ToDateTime("01/01/1900");

                foreach (DirectoryInfo d in pastas)
                {
                    FileInfo[]      filePasta = d.GetFiles("*.*");
                    List <FileInfo> infoPasta = filePasta.Where(item => (item.LastWriteTime >= dateTimePicker1.Value) && (Desconsiderar(item.Extension))).ToList();
                    nome = d.FullName;

                    foreach (FileInfo fileinfo in infoPasta.OrderByDescending(a => a.LastWriteTime))
                    {
                        FileStream fs = new FileStream(fileinfo.DirectoryName + "\\" + fileinfo.Name, FileMode.Open, FileAccess.Read);
                        Encoding   r  = Utils.Tools.GetFileEncoding(fs);
                        fs.Close();

                        Models.Arquivo arq = new Models.Arquivo();

                        arq.Data     = fileinfo.LastWriteTime;
                        arq.FullName = fileinfo.DirectoryName;
                        arq.Name     = fileinfo.Name;
                        arq.Encoding = r.BodyName;
                        arq.Tamanho  = fileinfo.Length;
                        lista.Add(arq);
                        listResultado.Items.Add(arq.FullName + "\\" + arq.Name + "----" + arq.Data);


                        toolStripStatusLabel1.Text = fileinfo.Name;
                        Application.DoEvents();
                    }
                    DirSearch(nome, lista);
                }
            }
            catch (System.Exception excpt)
            {
                Models.Arquivo arq = new Models.Arquivo();


                arq.Data     = DateTime.Now;
                arq.FullName = "";
                arq.Name     = excpt.Message;
                arq.Encoding = "Não tem";
                arq.OK       = false;
                arq.Tamanho  = 0;
                lista.Add(arq);

                listResultado.Items.Add(arq.FullName + "\\" + arq.Name + "----" + arq.Data);

                toolStripStatusLabel1.Text = excpt.Message;
                Application.DoEvents();
                DirSearch(nome, lista);
            }
        }