Cierto, pero como en mi aplicacion lo que hago es lanzar el fichero por descarga una vez creado (luego ya no se pueden descargar) lo que he hecho ha sido borrar los archivos con mas de, por ejemplo, media hora de antiguedad.
Código:
public void borrarTemporales(String ruta) throws WarException{
//Cargamos el parametro que determina la antiguedad de los ficheros
Parametro antiguedadFicheros = new Parametro();
ParametrosControlador pc = new ParametrosControlador();
antiguedadFicheros = pc.getParametroPorNombre("ANTIGUEDAD_FICHEROS");
int antFicheros = 0;
if (antiguedadFicheros != null){
antFicheros = Integer.parseInt(antiguedadFicheros.getValor());
}else{
throw new WarException("Parametro no encontrado. (borrarTemporales).");
}
//Obtenemos la ruta del directorio
File directorio = new File(ruta);
//Cargamos los ficheros
File[] ficheros = directorio.listFiles();
//Obtenemos la fecha actual
Date fechaActual = new Date();
//Recorremos todos los ficheros
for (int x = 0; x < ficheros.length; x++){
//Obtenemos la fecha de última modificación del fichero
Date fechaFichero = new Date(ficheros[x].lastModified());
//Comparamos con la actual
long dif = fechaActual.getTime() - fechaFichero.getTime();
long difSegundos = dif / 1000;
//Si el fichero tiene más de los segundos de antFicheros lo borramos
if (difSegundos > antFicheros){
ficheros[x].delete();
}
}
}
Ahí lo dejo por si a alguien le hace falta :)