Francisco Lopes :
Tengo una lista de rutas y tengo que quitar el último directorio de cada ruta.
Ruta de acceso: "I: \ directorio_1 \ directorio_2 \ Directory_3-SomeText" He utilizado el método de partición para eliminar Everyting en el lado derecho de la '-'
He intentado usar split () eliminar uno por uno y luego reagrupar todo en una sola cadena. He intentado everyting división en ( "\") y el uso de longitud ()
//Removes text after '-'
String [] parts = path.split("-")
String partsA = parts[0]
String [] newParts = partsA.split("\\\\");
String partsB = newParts[newParts.length-1];
partsA = partsA.substring(partsA.length()-partsB.length(),partsA.length()+partsB.length());
Espero que la salida sea
\ Directorio_1 \ directorio_2
sin el último directorio y el texto
assylias:
En lugar de utilizar la manipulación de cadenas, se puede usar objetos ruta / archivo adecuados, con el beneficio adicional de que puede manejar otros tipos de caminos (por ejemplo, una dirección de UNIX como /home/directory1
):
String f = "I:\\Directory_1\\Directory_2\\Directory_3-Sometext";
Path p = Paths.get(f);
Path parent = p.getParent();
System.out.println(parent.toString());