internal static void MoverArquivosParaOlds(string caminho, string subpasta, Processo processo, int codigoHistoricoExecucaoProcesso) { try { string caminhoOrigem = string.Empty; string caminhoDestino = string.Empty; string nomeArquivo = string.Empty; string destino = string.Empty; string[] arquivos = null; caminhoOrigem = Path.Combine(caminho, subpasta); arquivos = Directory.GetFiles(caminhoOrigem, "*.xml", SearchOption.TopDirectoryOnly); caminhoDestino = Path.Combine(caminhoOrigem, "olds"); VerificarDiretorio(caminhoDestino); foreach (string arquivo in arquivos) { nomeArquivo = string.Format("{0}{1}{2}{3}{4}{5}.xml", DateTime.Now.Year, DateTime.Now.Month.ToString().PadLeft(2, '0'), DateTime.Now.Day.ToString().PadLeft(2, '0'), DateTime.Now.Hour.ToString().PadLeft(2, '0'), DateTime.Now.Minute.ToString().PadLeft(2, '0'), DateTime.Now.Second.ToString().PadLeft(2, '0')); destino = string.Format("{0}/{1}", caminhoDestino, nomeArquivo); try { File.Move(arquivo, destino); var listaDeArquivos = CompressHelper.ObterListaDeArquivos(caminhoDestino, "*.xml", DateTime.Now.AddDays(-1), null); CompressHelper.Comprimir(listaDeArquivos); ExpurgoHelper.ExpurgarArquivos(caminhoDestino, "*.xml", DateTime.Now.AddDays(-1), null); RegistrarTransferenciaDeArquivo(codigoHistoricoExecucaoProcesso, DateTime.Now, Direcao.Movido, Status.Sucesso, arquivo, destino, subpasta); } catch (Exception ex) { RegistrarTransferenciaDeArquivo(codigoHistoricoExecucaoProcesso, DateTime.Now, Direcao.Movido, Status.Erro, arquivo, destino, subpasta); LogHelper.GravarDetalheErro(processo, codigoHistoricoExecucaoProcesso, ex, string.Format("{0} {1}", subpasta, Direcao.Movido)); throw new Exception(string.Format("Ocorreu um erro ao mover o arquivo {0} para pasta 'olds'. Detalhes {1}. Codigo execucao {2} \n", arquivo, ex.ToString(), codigoHistoricoExecucaoProcesso)); } } } catch (Exception ex) { throw new Exception(string.Format("Ocorreu um erro ao preprarar os arquivos para serem movidos para pasta 'olds'. Detalhes {0}. Codigo execucao {1} \n", ex.ToString(), codigoHistoricoExecucaoProcesso)); } }