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.
F
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.
C
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