Foros del Web » Programación para mayores de 30 ;) » Java »

Eliminar ficheros cada cierto tiempo

Estas en el tema de Eliminar ficheros cada cierto tiempo en el foro de Java en Foros del Web. Hola, tengo una aplicacion en la que se generan unos ficheros en una carpeta temporal y cada cierto tiempo necesito borrarlos. Esos ficheros se lanzan ...
  #1 (permalink)  
Antiguo 27/01/2010, 06:51
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 4 meses
Puntos: 2
Eliminar ficheros cada cierto tiempo

Hola, tengo una aplicacion en la que se generan unos ficheros en una carpeta temporal y cada cierto tiempo necesito borrarlos. Esos ficheros se lanzan al usuario por descarga por lo que a la hora de borrarlos necesito comprobar antes que no estan siendo descargados.

¿Alguna solucion?

Saludos!
  #2 (permalink)  
Antiguo 28/01/2010, 21:45
 
Fecha de Ingreso: febrero-2007
Mensajes: 77
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: Eliminar ficheros cada cierto tiempo

hola. Yo voy a reliazar algo como lo k comentas. estoy pensando tener un Thread para que por ejemplo 2:30 Am todos los archivos de la carpeta temporal se elimen. seria muy raro que alguien los este descaragndo a esa hora no cress?
  #3 (permalink)  
Antiguo 29/01/2010, 01:03
 
Fecha de Ingreso: diciembre-2007
Mensajes: 124
Antigüedad: 16 años, 4 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 :)
  #4 (permalink)  
Antiguo 29/01/2010, 06:50
Avatar de ezefarina  
Fecha de Ingreso: junio-2009
Mensajes: 91
Antigüedad: 14 años, 9 meses
Puntos: 2
Respuesta: Eliminar ficheros cada cierto tiempo

Yo q ustedes no lanzaria un thread, sino configuraria un cron en el crontab de linux. Para lanzar el thread habria q estar pendiente de inicializarlo junto con la jvm, si la jvm falla, el thread tmbn. Un cron al ser independiente es mas seguro y menos tedioso de mantener.

Slds
  #5 (permalink)  
Antiguo 29/01/2010, 09:47
Avatar de dackiller  
Fecha de Ingreso: septiembre-2003
Ubicación: The Matrix
Mensajes: 341
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: Eliminar ficheros cada cierto tiempo

Espero que esto pueda solventar tu problema...

Lo unico que para implementarlo necesitas reiniciar tomcat, es decir, si no eres el administrador del servidor, no podras usar hasta que el administrador reinicie Tomcat.

Revisa esto:

http://www.recortex.com/recorte/86

Saludos...
__________________
--
NOTA: Si haz conseguido la solución a tu problema, por favor edita el titulo del tema colocando el prefijo [SOLUCIONADO], para que otros usuarios puedan encontrar soluciones más rápido.
  #6 (permalink)  
Antiguo 29/01/2010, 12:16
 
Fecha de Ingreso: febrero-2007
Mensajes: 77
Antigüedad: 17 años, 2 meses
Puntos: 1
Respuesta: Eliminar ficheros cada cierto tiempo

Yo uso como servidor windows + glassfish v3 tambien funciona el cron? y el codigo ke se encuentra en la pagina antes citada?
  #7 (permalink)  
Antiguo 31/01/2010, 11:25
Avatar de dackiller  
Fecha de Ingreso: septiembre-2003
Ubicación: The Matrix
Mensajes: 341
Antigüedad: 20 años, 7 meses
Puntos: 4
Respuesta: Eliminar ficheros cada cierto tiempo

Cron = Linux
Programador de Tareas = Windows


El codigo de la página que cite, es muy sencillo basta con darle un poco de lectura, de verdad nunca he trabajado con glassfish pero supongo que debe trabajar igual...

Saludos...
__________________
--
NOTA: Si haz conseguido la solución a tu problema, por favor edita el titulo del tema colocando el prefijo [SOLUCIONADO], para que otros usuarios puedan encontrar soluciones más rápido.

Etiquetas: eliminar, ficheros
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:30.