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




groovy list (6)

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);
}

https://code.i-harness.com

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

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

In Java 7 hai la nuova Paths API. La soluzione moderna e più pulita è:

Paths.get("C:/aaa/bbb/ccc/ddd/test.java").getParent().getFileName();

Usa sotto,

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

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.


File f = new File("C:/aaa/bbb/ccc/ddd/test.java");
System.out.println(f.getParentFile().getName())

f.getParentFile() può essere nullo, quindi dovresti controllarlo.


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();




java-io