Java - Renombrar un fichero temporal

 
Vista:

Renombrar un fichero temporal

Publicado por Inma (2 intervenciones) el 14/12/2015 13:14:12
Buenas tardes,
estoy intentando modificar el nombre y extensión de un archivo temporal. Hago lo siguiente:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
File fTemporal = File.createTempFile("origen",null);
 
File dest = new File(aTemporal.getParentFile()+"\\destino.pdf");
 
 
boolean correcto=false;
if (dest.exists()) {
	dest.delete();
	correcto = fTemporal.renameTo(dest);
 
}
 
if (correcto){
	System.out.println ("se ha renombrado correctamente");
}else{
	System.out.println ("no se ha renombrado");
}
 
BufferedWriter out = new BufferedWriter(new FileWriter(fTemporal));
out.write("Esto es un fichero nuevo");
out.close();

El programa imprime por consola "Se ha renombrado correctamente" por lo que "supuestamente" ha funcionado.
Me crea un fichero origen con extensión tmp de 1kb y luego un fichero destino con extensión pdf de 0kb, el cuál no puedo abrir porque me dice que está dañado. No comprendo por qué no me lo renombra y por qué no me borra el fichero destino si le hago un delete().
Muchas gracias de antemano.
Saludos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Jordi

Renombrar un fichero temporal

Publicado por Jordi (38 intervenciones) el 18/12/2015 07:50:18
Hola Inma,

Así a primera vista, no estás generando bien fichero pdf. Cuando haces el getParentFile, tienes que hacerle luego un getAbsolutePath, de la siguiente forma.

1
File dest = new File(aTemporal.getParentFile().getAbsolutePath() +"\\destino.pdf");

Si aún así sigue sin funcionar, puede que sea por un tema en codificación del pdf, que deberá de generarse de otra forma.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Renombrar un fichero temporal

Publicado por Inma (2 intervenciones) el 24/12/2015 09:04:50
Muchas gracias,
al final lo solucioné de esta forma:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
File aTemporal = File.createTempFile("ORIGEN",null);
BufferedWriter out = new BufferedWriter(new FileWriter(aTemporal));
out.write("Esto es un fichero temporal");
out.close();
 
File dest = new File(aTemporal.getParentFile()+"\\DESTINO.doc");
BufferedWriter outer = new BufferedWriter(new FileWriter(dest));
outer.write("Esto es otro fichero");
outer.close();
 
 
boolean correcto=false;
if (dest.exists()) {
	dest.delete();
	correcto = aTemporal.renameTo(dest);
}
 
if (correcto){
	System.out.println ("se ha renombrado correctamente");
}else{
	System.out.println ("no se ha renombrado");
}
Saludos!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar