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

Ruta absoluta con espacios

Estas en el tema de Ruta absoluta con espacios en el foro de Java en Foros del Web. Hola a todos. Estoy haciendo un programilla que lee archivos de una carpeta que hay al mismo nivel que el jar. Para obtener la ruta ...
  #1 (permalink)  
Antiguo 12/11/2010, 17:18
 
Fecha de Ingreso: febrero-2010
Ubicación: Asturias patria querida
Mensajes: 45
Antigüedad: 14 años, 2 meses
Puntos: 4
Ruta absoluta con espacios

Hola a todos.

Estoy haciendo un programilla que lee archivos de una carpeta que hay al mismo nivel que el jar. Para obtener la ruta absoluta he hecho un método estático, es el siguiente:

Código PHP:
public class Ruta {
    public static 
String getRuta() {
        
java.security.ProtectionDomain pd =
                
Ruta.class.getProtectionDomain();
        
java.security.CodeSource cs pd.getCodeSource();
        
java.net.URL url cs.getLocation();
        
String f = new File(url.getFile()).getParentFile().getAbsolutePath();
        return 
f;
    }

Luego para llamar al archivo:
Código PHP:
File fichero = new File(
    
Ruta.getRuta() + File.separator "directorio" File.separator "archivo.dat"); 
En principio funciona bien pero si el nombre de algún directorio de la ruta tiene un espacio ya no encuentra los archivos.

He estado buscando por google pero no encuentro nada que me de una solución, no sé si esque no lo estoy enfocando bien...

Espero que me hecheis una mano con el tema.
  #2 (permalink)  
Antiguo 12/11/2010, 20:42
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Ruta absoluta con espacios

Hola.

prueba si escapando los espacios te funciona.

una ves que tengas tu ruta completa y almacenada en una variable prueba lo siguiente:
ruta=ruta.replaceAll(" ", "\ ");

Suerte.
  #3 (permalink)  
Antiguo 13/11/2010, 03:10
 
Fecha de Ingreso: febrero-2010
Ubicación: Asturias patria querida
Mensajes: 45
Antigüedad: 14 años, 2 meses
Puntos: 4
Respuesta: Ruta absoluta con espacios

Gracias por tu interés.

No se pueden escapar los espacios, da error al compilar, sin embargo me has dado una idea:

cuando utilizas el método getLocaction de la clase URL, este sustituye los espacios por el caracter % así que he probado a sustituir ese caracter:

ruta = ruta.replaceAll("%", " ");

Pero tampoco funciona...

La verdad es que no pensaba que leer archivos que están fuera del jar iba a ser tan complicado. Aquí en mi oficina hay dos libros de java, java21days y pensado en java, se supone que dos de los mejores libros sobre este lenguaje y ninguno de ellos aborda el tema, ambos dan soluciones para cuando ejecutas la aplicación desde el compilador pero no hablan de cuando se ha generado el jar, decepcionante...
  #4 (permalink)  
Antiguo 13/11/2010, 03:20
 
Fecha de Ingreso: febrero-2010
Ubicación: Asturias patria querida
Mensajes: 45
Antigüedad: 14 años, 2 meses
Puntos: 4
Respuesta: Ruta absoluta con espacios

Perdón rectifico, si funciona, esa era la solución, únicamente que el método getLocation de la clase URL no sustituye los espacios por % sino por %20, he sustituído este string et viola, solucionado.
  #5 (permalink)  
Antiguo 13/11/2010, 06:51
 
Fecha de Ingreso: febrero-2010
Ubicación: Asturias patria querida
Mensajes: 45
Antigüedad: 14 años, 2 meses
Puntos: 4
Respuesta: Ruta absoluta con espacios

Hola de nuevo a todos, me estoy encontrando con otro problema:

He creado un instalador que coloca el jar y la carpeta que servirá de entrada y salida de archivos en "archivos de programa/mi_programa". El tema es que los archivos de dicha carpeta seleen perfectamente pero no se puede escribir en ella.

¿Como puedo asignar permisos de escritura a esta carpeta? He probado con lo siguiente:

Código PHP:
File ruta = new File("ruta_de_la_carpeta");
ruta.setWritable (true); 
No funciona, sigue sin poder guardar archivos en ella, creo que porque no ha sido creada desde el programa.

Una mano please.
  #6 (permalink)  
Antiguo 13/11/2010, 09:42
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Ruta absoluta con espacios

Hola.

que bueno que ya avanzaste algo.Para esto no te es util el metodo o tecnica que usan algunos programas.

se instalan en archivos de programa pero sus archivo ( los generados ) los crean en mis documentos

Suerte.
  #7 (permalink)  
Antiguo 13/11/2010, 13:09
 
Fecha de Ingreso: febrero-2010
Ubicación: Asturias patria querida
Mensajes: 45
Antigüedad: 14 años, 2 meses
Puntos: 4
Respuesta: Ruta absoluta con espacios

Gracias lair por tu interés.

Seguro que se puede hacer de hecho jdownloader, que está hecho en java, cuando lo instalas trae por defecto como carpeta de descarga de archivos una llamada downloads que está en el mismo directorio donde se ha instalado, así que poderse se puede, otra cosa es como.

Sobre la solución que me propones también me asaltan dudas (como no jaja), ¿como sabes la ruta absoluta de un directorio que está en mis documentos?

salu2
  #8 (permalink)  
Antiguo 13/11/2010, 15:53
Avatar de lair  
Fecha de Ingreso: enero-2009
Ubicación: header('Location: Morelia");
Mensajes: 1.052
Antigüedad: 15 años, 3 meses
Puntos: 46
Respuesta: Ruta absoluta con espacios

Esa es una buen pregunta.

prueba con esto:
%USERPROFILE%\Mis Documentos

Suerte.

Etiquetas: espacios, 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 17:26.