help, I need somebody, help...

andoni
26 de Agosto del 2003
Alguien podria decirme como se puede hacer para cambiar el nombre de un fichero, y guardarlo en otro directorio diferente?

El caso es que recojo el fichero desde un formulario, lo guardo en un directorio temporal.
Lo que me gustaria hacer ahora es darle otro nombre (que seria un ID que recojo de la base de datos) y guardarlo en su correspondiente directorio.

Los ficheros pueden ser de todo tipo *.pdf, *.doc ...

Agradezco cualquier sugerencia, porque ya noo se que hacer.

fescalero
26 de Agosto del 2003
Si lo guardas en un directorio temporal por que no lo guardas en el que lo quieres?? No se mucho de esto, pero al crear el objeto File le puedes especeficar la ruta del archivo File archivo = new File("ruta");
y luego seria copiar el archivo no??
Luego coges la ruta de la base de datos en un string, asi que se lo puedes meter en el constructor. De todas maneras pon el codigo de loq ue estas haciendo en un mensaje del foro a ver si te puedo ayudar mas.
Espero te sirva de ayyuda.
un saludo

andoni
26 de Agosto del 2003
El caso es que utilizo cocoon, un framework xml del proyecto jakarta. Aqui se configura un directorio, y que yo sepa solo uno (aunque puede que me equivoque) por defecto para el upload de ficheros.

Yo tengo tres formularios diferentes, y los ficheros de cada formulario tienen que ir a directorios diferentes. Esa es la razon.

Hay va el codigo :

File uploadFile[] = uploadDir.listFiles(); <!-- en upload File recojo el fichero que COCOON me ha guardado en uploadDir -->
File nuevoFichero = null;
nuevoFichero = uploadFile[0];
boolean bo1 = nuevoFichero.isFile(); <!-- compruebo que es un fichero, y si es-->

String s = new String();
s = s.valueOf(id); <!-- id es un int que recupero de la base de datos, donde se encuentran los demas datos del formulario, y a mi fichero le quiero dar ese nombre -->

File cv = null;
cv = File (" /home/opt/jakarta-tomcat-4.1.24/webapps/mi_directorio/WEB-INF/Dir_cv/ " , s);
cv = nuevoFichero;
boolean bo = cv.isFile(); <!-- esto ya no es un fichero ni es nada -->


A ver si me puedes echar un cacle.

de todos modos, gracias

Un saludo


Jes?
26 de Agosto del 2003
Es que ahora no dispongo de codigo... pero lo que tienes que hacer es copiar el contenido del fichero en otro, como hay que abrir streams y tal te doy la pista.
Te creas el fichero con un tipo fileoutpustream por ejemplo en el directorio y con el nombre que tu quieres (Es posible que el servidor web no te deje escribir donde quieras, no lo se...).
El fichero origen se lo asocias a un inputStream elige el apropiado...
y luego haces un bucle leyendo de este y escribiendo en el output... (lee bytes por ejemplo).
cierras los ficheros y ya esta.

Lo que no se son los parametros y las vueltas que tienes que dar para llegar al Stream desde el fichero...
Depende de los argumentos que te pida. Me refiero a que por ejemplo si quieres un BufferInputStream quiza tengas que crear antes un Stream que es el que le puedes pasar como parametro el File...

Saludos y suerte.

andoni
26 de Agosto del 2003
Gracis por las indicaciones. (y por losanimos)

Un saludo