private void Arquivo_Exited(object sender, System.EventArgs e) { csArquivoAberto RemoverArquivoAberto = null; foreach (csArquivoAberto ArquivoAberto in ProcessosAbertos) { if (ArquivoAberto.Processo.Equals(sender)) { bool AindaEstaNaLista = false; RemoverArquivoAberto = ArquivoAberto; foreach (csItemArquivo ItemArquivo in _ItemListaArquivos.ItensArquivo) { if (ItemArquivo.Equals(ArquivoAberto.ItemArquivo)) { AindaEstaNaLista = true; } } if (AindaEstaNaLista) { DateTime DataHoraAlteracao = File.GetLastWriteTime(ArquivoAberto.NomeArquivo); if (DataHoraAlteracao != ArquivoAberto.DataHora) { DialogResult Resp; Resp = MessageBox.Show("O Arquivo " + csUtil.ParteNomeArquivo(ArquivoAberto.NomeArquivo, csUtil.enuParteNomeArquivo.NomeExtencao) + " foi alterado. Deseja salvar a alteração no Check List?\n", "Atualizar arquivo", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (Resp == DialogResult.Yes) { ArquivoAberto.ItemArquivo.CarregarArquivo(ArquivoAberto.NomeArquivo); this.Atualizar(); this.OnAlterouAlgo(new EventArgs()); } } } } } if (RemoverArquivoAberto != null) { ProcessosAbertos.Remove(RemoverArquivoAberto); GC.Collect(); } //try //{ // File.Delete(RemoverArquivoAberto.NomeArquivo); //} //catch (Exception) //{ //} }
/// <summary> /// Salva todos os arquivos da lista em uma pasta especificada. /// </summary> /// <returns>Retorna a quantidade de arquivos salvos.</returns> public virtual int SalvarTodosArquivos(string p_Caminho) { int QuantArquivosSalvos = 0; if (_ItensArquivo.Count == 0) { MessageBox.Show("Não existem arquivos na lista para salvar!", "Salvar Todos Arquivo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(QuantArquivosSalvos); } if (File.Exists(p_Caminho)) { MessageBox.Show("Informe um caminho e não um arquivo!", "Salvar Todos Arquivo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(QuantArquivosSalvos); } if (!Directory.Exists(p_Caminho)) { MessageBox.Show("O caminho informado não existe!", "Salvar Todos Arquivo", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); return(QuantArquivosSalvos); } if (p_Caminho[p_Caminho.Length - 1].ToString() != "\\") { p_Caminho = p_Caminho + "\\"; } // Varrendo a lista foreach (csItemArquivo ItemArquivo in _ItensArquivo) { if (ItemArquivo.TamanhoArquivo > 0) { ItemArquivo.SalvarArquivo(p_Caminho + ItemArquivo.NomeArquivo); QuantArquivosSalvos++; } } return(QuantArquivosSalvos); }