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

Ruta absoluta y relativa

Estas en el tema de Ruta absoluta y relativa en el foro de Java en Foros del Web. Hola pues estoy guardando un fichero mediante una ruta absoluta de la siguiente manera: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código JAVA: Ver original String dirDestino = "C: \\ ...
  #1 (permalink)  
Antiguo 09/01/2013, 05:19
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 10 meses
Puntos: 22
Ruta absoluta y relativa

Hola

pues estoy guardando un fichero mediante una ruta absoluta de la siguiente manera:

Código JAVA:
Ver original
  1. String dirDestino = "C:\\PROYECTO\\AplicacionWeb\\web\\images\\"+uploaded.getName();

Como tendría que hacerlo sin poner una ruta absoluta si la estructura de mi proyecto es la siguiente??



El codigo lo implemento en la clase "FormularioController.java"
  #2 (permalink)  
Antiguo 09/01/2013, 06:06
Avatar de jomaruro
Colaborador
 
Fecha de Ingreso: junio-2002
Ubicación: Naboo
Mensajes: 5.442
Antigüedad: 22 años, 4 meses
Puntos: 361
Respuesta: Ruta absoluta y relativa

Hola:

Sería, si no me equivoco:

Código Java:
Ver original
  1. String dirDestino = "\\images\\"+uploaded.getName();

Saludos.

  #3 (permalink)  
Antiguo 09/01/2013, 06:27
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 10 meses
Puntos: 22
Respuesta: Ruta absoluta y relativa

Ya lo habia intentado hacer asi pero me da el siguiente error:


java.io.FileNotFoundException: \images\foto.jpg (El sistema no puede encontrar la ruta especificada)


y ya no se que hacer he probado de todas las formas posibles
  #4 (permalink)  
Antiguo 09/01/2013, 06:53
Avatar de jomaruro
Colaborador
 
Fecha de Ingreso: junio-2002
Ubicación: Naboo
Mensajes: 5.442
Antigüedad: 22 años, 4 meses
Puntos: 361
Respuesta: Ruta absoluta y relativa

Hola:

Échale un vistazo a este ejemplo a ver si te sirve:

Ejemplo Subir Archivos

Saludos.

  #5 (permalink)  
Antiguo 09/01/2013, 10:45
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 9 meses
Puntos: 78
Respuesta: Ruta absoluta y relativa

Tienes esta misma consulta en dos POST diferentes con el título cambiado.

Última edición por ElAthlit; 09/01/2013 a las 10:54
  #6 (permalink)  
Antiguo 10/01/2013, 05:18
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 10 meses
Puntos: 22
Respuesta: Ruta absoluta y relativa

Cita:
Iniciado por ElAthlit Ver Mensaje
Tienes esta misma consulta en dos POST diferentes con el título cambiado.
No es lo mismo en la otra preguntaba por almacenamiento en disco y lo consegui haciendo rutas absolutas... el problema ahora es hacerlo con rutas relativas que por cierto todavia no he sido capaz.

Jomamuro gracias por el enlace! todavia no he conseguido que me funcione, pero el enlace me sirvio para entender otras cosas!!
  #7 (permalink)  
Antiguo 10/01/2013, 05:34
 
Fecha de Ingreso: febrero-2011
Mensajes: 672
Antigüedad: 13 años, 9 meses
Puntos: 78
Respuesta: Ruta absoluta y relativa

Hola rgf1987,
para hacer lo que tú quieres, lo correcto es hacer lo siguiente:

Cuando vayas a grabar la imagen, captura el path de la ejecución del programa, le concatenas la ruta relativa y tendrás el path completo desde C:\ hasta tu fichero. Quizás te lo guarda en temporales y por eso luego no lo ves donde crees que debería estar. Haciendo lo que te digo, tendrás total control.

Saludos
  #8 (permalink)  
Antiguo 10/01/2013, 05:47
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Ruta absoluta y relativa

Hola:

Vamos por partes. La ruta "relativa" que has puesto " \images\foto.jpg" no es relativa, si lleva una barra delante, siempre es absoluta, así que estará buscando en c:\images\foto.jpg

La ruta relativa debe ponerse según los directorios donde se está ejecutando tu aplicación, no el cómo esté organizado tu proyecto. Si tu aplicación es un war y va a correr en un JBoss/Tomcat/GlassFish o equivalente, el directorio de ejecución posiblemente sea el directorio bin de esa instalación de JBoss/Tomcat/GlassFish, aunque depende de cómo lo estés arrancando (si como servicio/demonio, a mano, etc).

En Tomcat, por ejemplo, el path relativo si está ejecutando en TOMCAT/bin sería algo así como "../webapps/tuaplicacion/path donde tu war deje las imagenes/foto.jpg".

Lo habitual para estos casos, si quieres guardar la imagen en algún sitio, es pedir en tu servlet el ServletContext para saber cual es el path absoluto en el que está instalado tu war y a partir de ahi, con path absoluto también, ubicar el fichero. Para obtener este path se puede hacer algo como getServletContext().getRealPath("index.jsp") (o cualquier otro jsp que tengas en el raíz de tu aplicación web).

Este mecanismo tiene un pequeño problema y es que si redespliegas/actualizas tu aplicación, toda ella se borra y se vuelve a desplegar, por lo que perderás los ficheros que has subido. Por ello otra opción es crear una carpeta con path absoluto fuera de tu webapp para guardar ahí los ficheros.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #9 (permalink)  
Antiguo 10/01/2013, 06:39
Avatar de rgf1987  
Fecha de Ingreso: diciembre-2012
Ubicación: Asturias
Mensajes: 269
Antigüedad: 11 años, 10 meses
Puntos: 22
Respuesta: Ruta absoluta y relativa

Gracias por las respuestas,

intentare hacerlo como me decis y chuidiang me has aclarado las cosas bastante!!!!
  #10 (permalink)  
Antiguo 14/06/2015, 15:35
 
Fecha de Ingreso: octubre-2014
Mensajes: 1
Antigüedad: 10 años
Puntos: 0
De acuerdo Respuesta: Ruta absoluta y relativa

Utiliza la librería java.net.URL. Y en la parte donde deseas la ruta de la imagen pon

URL is = getClass().getResource("imagen.jpg");
ImageIcon imgThisImg = new ImageIcon(is);

Cabe recalcar que la imagen debe estar dentro de la carpeta de la clase que estás usando así como un recurso.


Éxitos!!

Etiquetas: clase, formulario, relativa, ruta
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 22:04.