RMI e exclusão de arquivos (problema)

3 respostas
afffernando
Boa tarde, eu tenho uma aplicação que chama uma instancia de RMI para fazer copia de alguns arquivos, e depois exclui os arquivos originais. o metodo que faz isso é o seguinte:
public void mtBackupArquivo(String caminhoArquivoOrigem, String caminhoArquivoDestino, String nomeArquivo) throws java.rmi.RemoteException {
        System.out.println(this.mtDataHoraAtual()+"Inicio metodo mtBackupArquivo()");
        try{
            String pathOrigem = caminhoArquivoOrigem + nomeArquivo;
            String pathDestino = caminhoArquivoDestino + nomeArquivo;
            
            File file = new File(pathOrigem);
            FileInputStream fOrigem;
            FileOutputStream fDestino;
            
            //Faz copia de origem para destino
            fOrigem  = new FileInputStream(pathOrigem);
            fDestino = new FileOutputStream(pathDestino);
            byte[] buf = new byte[1024];
            int i = 0;
            while((i=fOrigem.read(buf))!=-1) {
                fDestino.write(buf, 0, i);
            }
            fOrigem.close();
            fDestino.close();
            
            //Deleta arquivo do caminho origem
            file.delete();
            
            file = null;
            fOrigem = null;
            fDestino = null;
            
        System.out.println(this.mtDataHoraAtual()+"Fim metodo mtBackupArquivo()");
        }catch (Exception e){
            System.out.println(this.mtDataHoraAtual()+" Exception in mtBackupArquivo(): "+e.toString());
            this.mtArquivoLogErro(new java.lang.StringBuffer("\n"+this.mtDataHoraAtual()+" Exception in mtBackupArquivo(): "+e.toString()));
        }
    }

porem ele não esta deletando os arquivos em uma maquina, aqui nós temos duas maquinas uma para teste (onde funciona corretamente) e uma que é o servidor final, onde não são apagados os arquivos.

Alguem tem alguma ideia de o que pode estar acontecendo?
grato

3 Respostas

ibispo

2 coisas:

  • Surge exception? Se sim, qual?
  • Imaginamos que ele esteja fazendo alusão ao arquivo na máquina local, quando ele vislumbra o ambiente do web conteiner. Se já viu isso?
afffernando

ibispo:
2 coisas:

  • Surge exception? Se sim, qual?
  • Imaginamos que ele esteja fazendo alusão ao arquivo na máquina local, quando ele vislumbra o ambiente do web conteiner. Se já viu isso?

Obrigado pela ajuda ibispo, mas respondendo:

1- não surge nenhuma exception
2- sou meio novato, então não antendi a pergunta… :oops:

grato

maior_abandonado

os arquivos apagados estão na mesma máquina que aonde esse código ai está executando? senão, provavelmente isso não vai funcionar, outro detalhe é que aparentemente, antes de executar o método delete de File, você tem que chamar o garbage collector, por algum motivo que desconheço. resumidamente, troque

file.delete();

por algo como isso:

boolean apagado = false; while(!apagado){ System.gc(); apagado = file.delete(); System.out.print("#"); }

Criado 16 de março de 2011
Ultima resposta 16 de mar. de 2011
Respostas 3
Participantes 3