Configurar pasta de Backup.
Boa tarde.
Estou com um programa que faz o bkp de uns arquivos. exemplo. dbug*.txt e copia para uma pasta debug\bkp_pop\.
ate ai tudo bem, consegui fazer. so que mim deparei com um problema. o meu programa tem que funcionar em rede. tambem.
Exemplo.
o executavel que gerar o debub. e de outro programador. e ele pode ser instalado no servidor/ecf, ou servidor mapeado para a ecf, entao vou mostra o codigo que eu consegui fazer executar. no servidor/ecf,
Entao com este codigo acimo funciona que é uma beleza, só que troco a variavel
aparece o seguinte erro na hora de gravar o bkp. c:syspaf\pop\bkp_pop\c:\syspaf\debug*.txt
ele repet o "c:" duas vezes e nâo sei como resolver.
alguem poderia mim dar alguma ajuda. obrigado.
Estou com um programa que faz o bkp de uns arquivos. exemplo. dbug*.txt e copia para uma pasta debug\bkp_pop\.
ate ai tudo bem, consegui fazer. so que mim deparei com um problema. o meu programa tem que funcionar em rede. tambem.
Exemplo.
o executavel que gerar o debub. e de outro programador. e ele pode ser instalado no servidor/ecf, ou servidor mapeado para a ecf, entao vou mostra o codigo que eu consegui fazer executar. no servidor/ecf,
namespace Limppop { public partial class Limpando : Form { private void Limpando_Load(object sender, EventArgs e) { #region "Aqui Limpando o pop debugs" string arquivoTexto = "debug*.txt"; //string sourcePath = Environment.CurrentDirectory + "\\"; string sourcePath = "\\syspaf\\pop\\"; string bkpPatchpop = "bkp_pop"; /// *** arquivo que vai ser procurado *** /// // aqui vou colocar a chamado de todos os arquivos.... try { // Only get files that begin with the letter "c." //string[] dirs = sourcePath.GetTypeS(@"c*"); //sstring[] dirarquivos = sourcePath.GetType(arquivoTexto); // ARQUIVO DE BKP string arquivos = sourcePath + arquivoTexto; string[] dirs = Directory.GetFiles(sourcePath, arquivoTexto); foreach (string dir in dirs) { //** começa aqui string diretoriobkp = sourcePath + bkpPatchpop + sourcePath; bool sVerificacaobkpPatchpop = Directory.Exists(diretoriobkp); if (!sVerificacaobkpPatchpop) { Directory.CreateDirectory(diretoriobkp); } bool sVerificacao = File.Exists(dir); if (sVerificacao) { string arquivonovo = sourcePath + bkpPatchpop + dir; #region "removendo o debug se estiver repetido" try { if (File.Exists(arquivonovo) == false) { File.Move(dir, arquivonovo); } else { File.Delete(arquivonovo); File.Move(dir, arquivonovo); } } catch (IOException errorarquivo) { listBoxLimpando.Items.Add(errorarquivo.Message + " erro ao copiar arquivo " + dir + " para " + arquivonovo); } #endregion } else { listBoxLimpando.Items.Add("Alerta erro: Este arquivo não existe (" + dir + ") \n Saindo do sistema.... Processando os Debugs"); } } } catch (Exception errorn) { MessageBox.Show(errorn.Message + " \n Problema ao executar a limpesa dos Debugs ","Processando os Debugs"); MessageBox.Show("Saindo da Aplicação porque " +errorn.Message,"Terminando o Processo!",MessageBoxButtons.OK,MessageBoxIcon.Error); this.Close(); } #endregion
Entao com este codigo acimo funciona que é uma beleza, só que troco a variavel
string sourcePath = "\\syspaf\\pop\\"; por string sourcePath = Environment.CurrentDirectory + "\\";
aparece o seguinte erro na hora de gravar o bkp. c:syspaf\pop\bkp_pop\c:\syspaf\debug*.txt
ele repet o "c:" duas vezes e nâo sei como resolver.
alguem poderia mim dar alguma ajuda. obrigado.
Alexssandro Lima
Curtidas 0
Respostas
Joel Rodrigues
04/02/2014
Na linha 30 do código acima, tem que ter esse sourcePath no final mesmo?
GOSTEI 0
Alexssandro Lima
04/02/2014
Na linha 30 do código acima, tem que ter esse sourcePath no final mesmo?
Este codigo e porque eu nao consegui eviar para a pasta bkp_pop entao criei esta chamada
string diretoriobkp = sourcePath + bkpPatchpop + sourcePath;
para que ele enviar para um diretorio de bkp. vc tem alguma ideia melhor para que eu use.
obrigado.
GOSTEI 0
Joel Rodrigues
04/02/2014
Você quer enviar os arquivos contidos na pasta que está definida no sourcePath para a pasta bkp_pop?
Se for, experimente verificar se o diretório bkp_pop existe. Se não existir, crie ele e então copie os arquivos.
Se for, experimente verificar se o diretório bkp_pop existe. Se não existir, crie ele e então copie os arquivos.
GOSTEI 0
Alexssandro Lima
04/02/2014
Você quer enviar os arquivos contidos na pasta que está definida no sourcePath para a pasta bkp_pop?
Se for, experimente verificar se o diretório bkp_pop existe. Se não existir, crie ele e então copie os arquivos.
Se for, experimente verificar se o diretório bkp_pop existe. Se não existir, crie ele e então copie os arquivos.
como tem no codigo acima. caso nao existir a pasta ele cria,
tubo normal e funcionando. mais quando eu troco o codigo como abaixo.
string sourcePath = "\syspaf\pop\"; por string sourcePath = Environment.CurrentDirectory + "\";
ele repeto o local que esta sendo executado tudas vezes. e eu nao sei como tirar.
exemplo
string sourcePath = "\syspaf\pop\";
com este codigo ele pega a pasta \syspaf\pop\debug*.txt para \syspaf\pop\bkp_pop\syspaf\pop\debug*.txt
ate ai ele funcionar lega. e salva, cria se nao existir,
quando eu uso
string sourcePath = Environment.CurrentDirectory + "\";
ele cria c:\syspaf\pop\debug*.txt para c:\syspaf\pop\bkp_pop\C:\syspaf\pop\debug*.txt.
e dar o erro IOException que repete o c:\ duas vezes. e eu nao consegui ageitar.
por que isso.
proque uso tanto no c:\syspaf\pop. como no z:\pop\ e eu so consegui funcionar no \syspaf\pop\
e colocano
string sourcePath = Environment.CurrentDirectory + "\";
se alguem poder mim ajudar.
GOSTEI 0
Joel Rodrigues
04/02/2014
O problema está na forma como você monta o diretoriobkp. Se você concatentar o sourcePath no final, vai dar esse erro. Você precisa montar esse diretório de outra forma, por exemplo, usando um nome fixo para a pasta de backup.
GOSTEI 0
Alexssandro Lima
04/02/2014
O problema está na forma como você monta o diretoriobkp. Se você concatentar o sourcePath no final, vai dar esse erro. Você precisa montar esse diretório de outra forma, por exemplo, usando um nome fixo para a pasta de backup.
ola. bom dia!
um nome fixo eu nao consegui fazer.
porque, o sistema pega varias debug*.txt, exemplo. dbug010214,debug020214,debug030214, entao ele cria um list
string[] dirs = Directory.GetFiles(sourcePath, arquivoTexto);
GOSTEI 0
Joel Rodrigues
04/02/2014
Olhando aqui com mais calma, você não está usando a variável que criou para armazenar o diretório de backup.
Você cria o diretório, mas não usa depois, pois você move os arquivos para uma pasta composta de sourcePath+ bkpPatchpop + dir. Poderia conferir isso, por favor?
string diretoriobkp = sourcePath + bkpPatchpop + sourcePath; bool sVerificacaobkpPatchpop = Directory.Exists(diretoriobkp); if (!sVerificacaobkpPatchpop) { Directory.CreateDirectory(diretoriobkp); }
Você cria o diretório, mas não usa depois, pois você move os arquivos para uma pasta composta de sourcePath+ bkpPatchpop + dir. Poderia conferir isso, por favor?
GOSTEI 0
Alexssandro Lima
04/02/2014
Olhando aqui com mais calma, você não está usando a variável que criou para armazenar o diretório de backup.
Você cria o diretório, mas não usa depois, pois você move os arquivos para uma pasta composta de sourcePath+ bkpPatchpop + dir. Poderia conferir isso, por favor?
string diretoriobkp = sourcePath + bkpPatchpop + sourcePath; bool sVerificacaobkpPatchpop = Directory.Exists(diretoriobkp); if (!sVerificacaobkpPatchpop) { Directory.CreateDirectory(diretoriobkp); }
Você cria o diretório, mas não usa depois, pois você move os arquivos para uma pasta composta de sourcePath+ bkpPatchpop + dir. Poderia conferir isso, por favor?
lembrei, o +dir, e o nome dos arquivos que ele vai nomear quando mover. exemplo.
\syspaf\pop\debug123.txt para \syspaf\pop\bkp_pop\syspaf\pop\debug123.txt
\syspaf\pop\debug124.txt para \syspaf\pop\bkp_pop\syspaf\\popdebug124.txt
entao o dir e o comjunto de diretoriobko= \syspaf\bkp_pop\ + dir = \syspaf\pop\debug*.txt
entao e nesta hora que eu uso o "dir." nao sei se vc entendeu.
obrigado por mim ajudar. porque neste codigo eu queria usar o
string sourcePath = Environment.CurrentDirectory + "\"
mais do geito que esta o codigo esta funcionando. em varios clientes. so nao consegui modificar para os clientes que usam em redes.
eu tinha um batch, e resolvi crialo em c# para mim ajudar na univercidade que estou fazendo.
aguardo alguma resposta do amigo.
GOSTEI 0
Joel Rodrigues
04/02/2014
Se você colocar esse Enviroment.CurrentDirectory como quer e remover aquela concatenação do sourcePath no final, o que acontece?
Eu ainda insisto que não precisa desse sourcePath no final, dá pra fazer sem isso.
Eu ainda insisto que não precisa desse sourcePath no final, dá pra fazer sem isso.
GOSTEI 0
Alexssandro Lima
04/02/2014
Se você colocar esse Enviroment.CurrentDirectory como quer e remover aquela concatenação do sourcePath no final, o que acontece?
Eu ainda insisto que não precisa desse sourcePath no final, dá pra fazer sem isso.
Eu ainda insisto que não precisa desse sourcePath no final, dá pra fazer sem isso.
Estou fazendo novos teste, quando eu termnar vou posta aqui para vc ver. como esta ficando. acho que hoje a noite eu vou terminar. entao volto a posta-lo para vc verifica junto comigo.
porque o que o codigo que eu coloquei esta funcionando. entao estou colocando o que tem este
string sourcePath = Environment.CurrentDirectory + "\";
obrigado pela antenção.
GOSTEI 0
Alexssandro Lima
04/02/2014
modifiquei aqui!
modifiquei aqui"
modifiquei aqui tambem.
na hora de mover o arquivo para a pasta de backup , te que ter o nome do arquivo para qual ele vai mover. entao eu nao consegui colocar ,
dir = local + nome arquivo
arquivonovo = local + nome do arquivo
se olha no foto abaixo nao vai aparecer o nome do arquivo que ele vai mover.
[img:descricao=arquivo achado e nao tem o nome de onde ele vai.]http://arquivo.devmedia.com.br/forum/imagem/320947-20140208-013052.png[/img]
pode se que agora fica mais facil de entender o que estou querendo.
obrigado esperando alguma resposta.
string arquivoTexto = "debug*.txt"; string sourcePath = Environment.CurrentDirectory + "\\"; //troquei pelo o outro //string sourcePath = "\\syspaf\\pop\\"; string bkpPatchpop = "bkp_pop" + "\\"; //coloquei para colocar as "\\"
modifiquei aqui"
string diretoriobkp = sourcePath + bkpPatchpop; // retirei o ultimo daqui para tirar " sourcePath " MessageBox.Show("Diretorio sourcePath " + sourcePath + "\r \n bkpPatchpop " + bkpPatchpop + "\r \n bkp " + diretoriobkp);
modifiquei aqui tambem.
string arquivonovo = sourcePath + bkpPatchpop; // modifiquei aqui retirando o "dir" MessageBox.Show("sourcePath ( " + sourcePath + " ) \r \n bkpPatchpop ( " + bkpPatchpop + " ) \r \n Arquivo que vai ser modificado ( " + arquivonovo + " ) na Execusão ");
na hora de mover o arquivo para a pasta de backup , te que ter o nome do arquivo para qual ele vai mover. entao eu nao consegui colocar ,
File.Move(dir, arquivonovo);
dir = local + nome arquivo
arquivonovo = local + nome do arquivo
se olha no foto abaixo nao vai aparecer o nome do arquivo que ele vai mover.
[img:descricao=arquivo achado e nao tem o nome de onde ele vai.]http://arquivo.devmedia.com.br/forum/imagem/320947-20140208-013052.png[/img]
pode se que agora fica mais facil de entender o que estou querendo.
obrigado esperando alguma resposta.
GOSTEI 0
Joel Rodrigues
04/02/2014
Pelo jeito faltou só o nome do arquivo no caminho de destino, né?
Para isso, você pode usar a classe FileInfo para pegar só o nome do arquivo e concatenar na variável arquivonovo. Exemplo:
Para isso, você pode usar a classe FileInfo para pegar só o nome do arquivo e concatenar na variável arquivonovo. Exemplo:
FileInfo finfo = new FileInfo(dir); string arquivonovo = sourcePath + bkpPatchpop + finfo.Name;
GOSTEI 0
Alexssandro Lima
04/02/2014
Pelo jeito faltou só o nome do arquivo no caminho de destino, né?
Para isso, você pode usar a classe FileInfo para pegar só o nome do arquivo e concatenar na variável arquivonovo. Exemplo:
Para isso, você pode usar a classe FileInfo para pegar só o nome do arquivo e concatenar na variável arquivonovo. Exemplo:
FileInfo finfo = new FileInfo(dir); string arquivonovo = sourcePath + bkpPatchpop + finfo.Name;
boa noite. amigo, você foi de muita ajuda. uma seguencia de comando simples. resolveu quase um mes de sofrimento.
obrigado, esta concluido com sucesso funcionando 100%
ja estou fazendo outro projeto para fazer bkp usando u winrar.exe. nesta mesma linha de comandos.
e salvar em um servidor linux com o pscp.exe
..
GOSTEI 0
Joel Rodrigues
04/02/2014
Opa, que bom que deu certo.
Quando for fazer a parte de compactação, dê uma olhada nesse post antes de usar o WinRar: [url:descricao=Compactando e extraindo diretórios em C#]https://www.devmedia.com.br/compactando-e-extraindo-diretorios-em-c-dica/28528[/url].
Abraço.
Quando for fazer a parte de compactação, dê uma olhada nesse post antes de usar o WinRar: [url:descricao=Compactando e extraindo diretórios em C#]https://www.devmedia.com.br/compactando-e-extraindo-diretorios-em-c-dica/28528[/url].
Abraço.
GOSTEI 0