java groovy - Come ottenere solo il nome della directory padre di un file specifico




4 Answers

Utilizzare il metodo String.lastIndexOf() di String.lastIndexOf() e String.lastIndexOf() per recuperare solo la directory padre immediata.

Il commento di Mark è una soluzione migliore di lastIndexOf() :

file.getParentFile().getName();

Queste soluzioni funzionano solo se il file ha un file principale (ad esempio, creato tramite uno dei costruttori di file che accetta un File principale). Quando getParentFile() è null, dovrai ricorrere a lastIndexOf , o usare qualcosa come FileNameUtils.getFullPath() Apache Commons :

FilenameUtils.getFullPathNoEndSeparator(file.getAbsolutePath());
=> C:/aaa/bbb/ccc/ddd

Esistono diverse varianti per mantenere / rilasciare il prefisso e il separatore finale. Puoi usare la stessa classe FilenameUtils per prendere il nome dal risultato, usare lastIndexOf , ecc.

list extension

Come ottenere ddd dal nome del percorso in cui risiede test.java.

File file = new File("C:/aaa/bbb/ccc/ddd/test.java");



Usa sotto,

File file = new File("file/path");
String parentPath = file.getAbsoluteFile().getParent();



File file = new File("C:/aaa/bbb/ccc/ddd/test.java");
File curentPath = new File(file.getParent());
//get current path "C:/aaa/bbb/ccc/ddd/"
String currentFolder= currentPath.getName().toString();
//get name of file to string "ddd"

se è necessario aggiungere la cartella "ddd" da un altro percorso, utilizzare;

String currentFolder= "/" + currentPath.getName().toString();



Da java 7 preferirei usare Path. Devi solo inserire il percorso in:

Path dddDirectoryPath = Paths.get("C:/aaa/bbb/ccc/ddd/test.java");

e crea qualche metodo get:

public String getLastDirectoryName(Path directoryPath) {
   int nameCount = directoryPath.getNameCount();
   return directoryPath.getName(nameCount - 1);
}



Related

java groovy java-io