Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/01/2010, 01:03
JuaNiNNaio
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 5 meses
Puntos: 2
Respuesta: Eliminar ficheros cada cierto tiempo

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 :)