public FrmDestinosCad(string local, LocalPath promob) { InitializeComponent(); _local = local; _promob = promob; label2.Visible = true; lbID.Visible = true; _editar = true; SetDados(); }
private void LoadDestinos() { Cursor.Current = Cursors.WaitCursor; try { _listaDestinos = new List <LocalPath>(); DirectoryInfo dir = new DirectoryInfo(_localDestinos); FileInfo[] destinos = dir.GetFiles("*", SearchOption.TopDirectoryOnly); foreach (var arquivo in destinos) { LocalPath local = new LocalPath(); try { XmlDocument xml = new XmlDocument(); xml.Load(arquivo.FullName); local.ID = xml.SelectSingleNode("destino").Attributes["ID"].Value; local.Descricao = xml.SelectSingleNode("destino").Attributes["descricao"].Value; local.Origem = xml.SelectSingleNode("destino").Attributes["origem"].Value; local.Destino = xml.SelectSingleNode("destino").Attributes["destino"].Value; local.Status = xml.SelectSingleNode("destino").Attributes["status"].Value; } catch (Exception) { throw; } _listaDestinos.Add(local); } dgvLocais.Limpar(); dgvLocais.DataSource(_listaDestinos); } catch (Exception) { throw; } Cursor.Current = Cursors.Default; }
private void dgvDestinos_BotaoExcluirClick(object sender, EventArgs e) { try { if (dgvLocais.Count == 0 || dgvLocais.GetSelecionados().Count != 1) { return; } if (ShowMessage.SimNao("Deseja excluir o item selecionado?")) { LocalPath item = (LocalPath)dgvLocais.GetItemCorrente(); string file = Path.Combine(_localDestinos, string.Format("destino{0}.xml", item.ID)); if (File.Exists(file)) { File.Delete(file); } LoadDestinos(); } } catch (Exception ex) { ShowMessage.Erro(ex); } }
private void RealizarBackup(List <LocalPath> locaisSelecionados) { string origemModelo = string.Empty; List <LocalPath> locaisAtualizar = new List <LocalPath>(); List <FileInfo[]> listas = new List <FileInfo[]>(); #region Carregar lista de arquivos foreach (var local in locaisSelecionados) { FileInfo[] listaDestino; try { listaDestino = new DirectoryInfo(local.Destino).GetFiles("*", SearchOption.AllDirectories); } catch (Exception) { continue; } locaisAtualizar.Add(local); listas.Add(listaDestino); } #endregion #region Atualizar Arquivos int count = 0; foreach (var arquivosExistentes in listas) { LocalPath localAtual = locaisAtualizar[count++]; string descricaoLocal = localAtual.Descricao; string pastaOrigem = localAtual.Origem; string pastaDestino = localAtual.Destino; if (!pastaOrigem.EndsWith(@"\")) { pastaOrigem += @"\"; } if (!pastaDestino.EndsWith(@"\")) { pastaDestino += @"\"; } #region Remover arquivos inexistentes Progresso(string.Format("Atualizando \"{0}\". Excluindo lista de arquivos inexistentes.", descricaoLocal), arquivosExistentes.Length); foreach (var arquivoAtual in arquivosExistentes) { ProgressoAdd(); FileInfo arquivoOrigem = new FileInfo(pastaOrigem + arquivoAtual.FullName.Replace(pastaDestino, "")); bool flag1 = Directory.Exists(arquivoOrigem.DirectoryName); bool flag2 = Directory.Exists(arquivoAtual.DirectoryName); bool flag3 = File.Exists(arquivoOrigem.FullName); bool flag4 = File.Exists(arquivoAtual.FullName); if (!flag1 && flag2) { Directory.Delete(arquivoAtual.DirectoryName, true); } else if (!flag3 && flag4) { File.Delete(arquivoAtual.FullName); } if (!(bool)btAtualizar.Tag) { throw new AtencaoException("Processo cancelado com sucesso."); } } #endregion #region Copiar arquivos modificados FileInfo[] arquivosOrigem = new DirectoryInfo(localAtual.Origem).GetFiles("*", SearchOption.AllDirectories); Progresso(string.Format("Atualizando \"{0}\". Copiando arquivos atualizados.", descricaoLocal), arquivosOrigem.Length); foreach (var novoArquivo in arquivosOrigem) { ProgressoAdd(); FileInfo arquivoDestino = new FileInfo(pastaDestino + novoArquivo.FullName.Replace(pastaOrigem, "")); bool flag0 = novoArquivo.Directory.Name == @"$RECYCLE.BIN"; bool flag1 = Directory.Exists(arquivoDestino.DirectoryName); bool flag2 = arquivoDestino.Exists; bool flag3 = novoArquivo.LastWriteTime > arquivoDestino.LastWriteTime; bool flag4 = flag2 ? novoArquivo.Length != arquivoDestino.Length : true; if (flag0) { continue; } if (!flag1) { Directory.CreateDirectory(arquivoDestino.DirectoryName); File.Copy(novoArquivo.FullName, arquivoDestino.FullName, true); } else if (!flag2 | flag3 | flag4) { File.Copy(novoArquivo.FullName, arquivoDestino.FullName, true); } if (!(bool)btAtualizar.Tag) { throw new AtencaoException("Processo cancelado com sucesso."); } } #endregion } #endregion ProgressoConcluido("Processo concluído."); ShowMessage.Ok("Backup realizado com sucesso."); }