Пример #1
0
 public FrmDestinosCad(string local, LocalPath promob)
 {
     InitializeComponent();
     _local         = local;
     _promob        = promob;
     label2.Visible = true;
     lbID.Visible   = true;
     _editar        = true;
     SetDados();
 }
Пример #2
0
 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;
 }
Пример #3
0
 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);
     }
 }
Пример #4
0
        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.");
        }