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); } }