Ja respondendo a pergunta do mozena e do CristianPalmaSola10…
Seguinte a lógica do CristianPalmaSola10 de colocar o delete dentro do catch eu tentei, mas não apaga do mesmo jeito…
Sobre ta executando em máquina local eu estou, só que o problema é que a aplicação é em JavaEE e esse código está dentro de um timer que o glasfish dispara de 1 em uma hora…
Ai eu não posso matar o processo do java…
Se tiverem alguma outra idéia, será de grande ajuda
E
entanglement
Usualmente você faz algo como:
Filef=...;FileOutputStreamfos=null;try{try{/* O código que abre o arquivo fos e que eventualmente pode dar problemas */}finally{// Mesmo que ocorrer algum problema, vamos fechar o arquivo na marraif(fos!=null)try{fos.close();}}}catch(Throwablethr){f.delete();// tratamento de apagamento de arquivos - aqui o arquivo deve ter sido fechado no finally}
M
mozena
Ahh o aplicativo está em produção… :?
Testei local e funcionou corretamente. A task qye você configurou demora quanto tempo para finalizar? Será que não está executando uma em cima da outra ?
Outro ponto de atenção: No final do processo o glasfish está matando as threads ? tem como você conferir ?
M
mozena
Concordo com nosso amigo Entanglement, você deve fechar os arquivos antes de deletar.
fabioqb
Linha 2: o objeto files possui elementos? Se não possuir, seu objeto fileApagar estará vazio.
Linha 6: o que é o objeto “operacao”? Se este valor for diferente de null ou não lançar exceção, não entra no catch e seu fileApagar estará vazio.
Dica: execute esse código em modo debug ou coloque instruções System.out.println (temporariamente) nos trechos do seu código.
CristianPalmaSola10
Esses dias eu passei por algo semelhante, eu criava um arquivo no servidor para gravar uns dados e depois tentava apaga-lo e ele não era apagado, depois de muito bater cabeça percebi que o arquivo naum era apagado por eu naum dar um close nele antes, talvez seja isso agora tambem