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

borrado de ficheros

Estas en el tema de borrado de ficheros en el foro de Java en Foros del Web. Tengo el siguiente código para copiar ficheros desde mis jps a mi servidor. public static boolean grabarFichero(byte[] encKey, String pathFichero) { boolean salida = false; ...
  #1 (permalink)  
Antiguo 09/03/2009, 11:33
 
Fecha de Ingreso: octubre-2008
Ubicación: Madrid
Mensajes: 352
Antigüedad: 15 años, 6 meses
Puntos: 5
borrado de ficheros

Tengo el siguiente código para copiar ficheros desde mis jps a mi servidor.

public static boolean grabarFichero(byte[] encKey, String pathFichero) {
boolean salida = false;
try {
File aux = new File(pathFichero);
if (aux.exists())
aux.delete();
FileOutputStream keyfos = new FileOutputStream(pathFichero);
keyfos.write(encKey);
keyfos.close();
salida = true;

} catch (Exception e) {
// System.out.println ("Error al grabar el fichero:"+e.toString());

}
return salida;
}

El copiado se hace perfectamente.

El problema que al borrar no lo borra...

...

File f1 = new File(es.abalia.util.Constantes.RUTACANDIDATOS+nomb reCarpeta+candi.getFichero1());
if (f1.delete()){

...


La ruta esta bien.
No se si me estaré dejando algún método o algo sin cerrar y no puede acceder al file para borrarlo...

¿Alguien ve el problema?
  #2 (permalink)  
Antiguo 09/03/2009, 15:23
 
Fecha de Ingreso: octubre-2003
Mensajes: 3.578
Antigüedad: 20 años, 6 meses
Puntos: 51
Respuesta: borrado de ficheros

Si el S.O. tiene el fichero bloqueado por algun motivo, por ejemplo el mismo programa tenga un stream abierto contra el, o algun otro programa lo usa, entonces la JVM no puede borrarlo. Ni Java ni ningun otro lenguaje. Windows es especialista en bloquear ficheros que no hay forma de borrar hasta que algunos procesos se mueren del todo . Tampoco te suelen dejar borrar un directorio que no esté vacío etc.

Si tienes que borrarlo obligatoriamente antes de continuar, comprueba el programa para ver que la interferencia no la causas tu en tu propio programa, y si no es así, entonces solo te queda darle un mensaje de error al usuario de que no has podido hacerlo. El metodo delete() devuelve un boolean para indicar si se pudo o no hacer el borrado.

En tu caso parece que necesitas borrarlo, asi que parece que tendras que optar por ahí.

S!
__________________
Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana.
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 01:14.