Deletar arquivos temporários quando aplicação fecha
4 respostas
E
eclipso
Olá…
Em minha aplicação preciso gerar e manipular uma série de arquivos temporários. Gostaria que os mesmos fosem deletados quando minha aplicação for fechada. Tentei usar o método deleteOnExit() da classe File, todavia não obtive resultado. Existe outra forma de fazer isso sem percorrer a pasta inteira deletando arquivos, ao fim da aplicação?
O que vc pode fazer é guardar em uma lista estes files que deverão ser deletados no final da aplicação, e cadastrar uma thread para rodar quando a JVM estiver para ser parada… assim:
Runtime.getRuntime().addShutdownHook(newThread(){publicvoidrun(){// aqui vc pegaa tal lista com os arquivos a serem deletados e os delete...}});
F
fiaux
Bom, não sei se tem outro jeito, mas se você tem as referências para os arquivos e são poucos não custa nada fazer isso na mão.
Apenas para explicar, parece que o deleteOnExit() só funciona quando a JVM é finalizada, e de maneira normal.
Há uma série de bug reports para deleteOnExit, então é melhor fazer 2 coisas:
Feche sempre - use sempre try/finally. É o jeito que é mais “bem-comportado”.
Além disso, faça o que o BrunoCarlo lhe indicou.
D
dyorgio
Pra que deletar?
use o File.createTempFile(), (ou algo parecido com isso),
e coloque o deleteOnExit(), se deletar deletou…
senão , paciencia, de tempos em tempos o usuario vai limpar os temporarios
ou quando encher o hd o windows limpa tb
haehhaerhheaheahe