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

Rutas para acceder a carpetas

Estas en el tema de Rutas para acceder a carpetas en el foro de Java en Foros del Web. Buenas tardes. Resulta que tengo un dos carpetas: La carpeta1 contiene un documento.txt La carpeta2 contiene una clase que implementa un metodo que debe llamar ...
  #1 (permalink)  
Antiguo 30/05/2013, 08:02
 
Fecha de Ingreso: abril-2013
Mensajes: 14
Antigüedad: 11 años, 8 meses
Puntos: 0
Rutas para acceder a carpetas

Buenas tardes.

Resulta que tengo un dos carpetas:
La carpeta1 contiene un documento.txt
La carpeta2 contiene una clase que implementa un metodo que debe llamar a ese documento.
La carpeta1 y la carpeta2 estan ambas al mismo nivel (dentro de una carpetaPadre)

Con esta finalidad el método anterior posee la siguiente linea de código:

Código:
File f = new File("../carpeta1/documento.txt");
Pero no lo encuentra.
La única opción que he visto por internet es usar una ruta absoluta como "C:\\carpetaPadre\carpeta1\documento.txt", pero entonces veo limitada la portabilidad del programa, pues depende de donde se situen sus clases con respecto a la jerarquía absoluta de la plataforma (es decir... ubuntu no me reconocería ningún C:\\. Si no me estoy equivocando...

¿Alguien que me ayude? Por favor.

Se que es una pregunta muy tonta.

Gracias de antemano.
Un saludo.
  #2 (permalink)  
Antiguo 30/05/2013, 08:37
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Rutas para acceder a carpetas

Hola:

Eso que has puesto new File("../carpeta1/documento.txt"); es válido siempre y cuando tu directorio de trabajo sea carpeta2. Tu directorio de trabajo es donde arranques tu aplicación, que si es estás en un IDE será posiblemente la raíz del proyecto y si estás ya con un jar instalado será donde esté ubicado el jar.

Cuando tengas el ejecutable hecho, el directorio de trabajo será donde esté el jar, así que sólo tienes que poner una ruta relativa desde el jar hasta donde pienses ubicar carpeta1 cuando esté todo instalado.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 30/05/2013, 09:07
 
Fecha de Ingreso: abril-2013
Mensajes: 14
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Rutas para acceder a carpetas

Pues entonces debo tener el fallo en otro lugar, porque "f.exists()" me devuelve 0. Gracias de todos modos.

Aprovechando este tema... otra pregunta absurda: tengo dos clases en un package, una es el main y la otra una clase con métodos. Ambas tienen su respectivo "package ejemplo;" en la cabecera, pero el main intenta crear un objeto de la otra clase y me salta un "cannot find symbol".

¿Es que hace falta importar el paquete estando dentro?
  #4 (permalink)  
Antiguo 30/05/2013, 11:23
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Rutas para acceder a carpetas

No, no hace falta. ¿Es al ejecutar o al compilar? ¿Cómo ejecutas/compilas?

Por cierto, exists(), si f es un File, devuelve true o false, no 0.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #5 (permalink)  
Antiguo 30/05/2013, 14:12
 
Fecha de Ingreso: abril-2013
Mensajes: 14
Antigüedad: 11 años, 8 meses
Puntos: 0
Respuesta: Rutas para acceder a carpetas

Es al compilar. Compilo con Geany 0.21 en Ubuntu 12.04.

Cierto: exists() exactamente devuelve un boolean como dices. Lo dije a modo comparativo: false = 0 = bombilla apagada.

Por cierto, enhorabuena por la wiki y la web. He entrado más de una vez.
  #6 (permalink)  
Antiguo 30/05/2013, 14:28
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 2 meses
Puntos: 454
Respuesta: Rutas para acceder a carpetas

Gracias.

No conozco Geany. pero si es al compilar, asegúrate que sabe donde está esa otra clase que no encuentra.

Se bueno.
__________________
Apuntes Java
Wiki de Programación

Etiquetas: carpetas, clase, metodo, programa, rutas
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:07.