Как получить ddd от имени пути, где находится test.java.
File file = new File("C:/aaa/bbb/ccc/ddd/test.java");
Как получить ddd от имени пути, где находится test.java.
File file = new File("C:/aaa/bbb/ccc/ddd/test.java");
Используйте File getParentFile() method и String.lastIndexOf() для получения только ближайшего родительского каталога.
Отметить комментарий лучше, чем lastIndexOf():
file.getParentFile().getName();
Эти решения работают только в том случае, если файл имеет родительский файл (например, созданный с помощью одного из конструкторов файлов с родительским File). Когда getParentFile() имеет значение null, вам нужно использовать lastIndexOf или использовать что-то вроде Apache Commons 'FileNameUtils.getFullPath():
FilenameUtils.getFullPathNoEndSeparator(file.getAbsolutePath());
=> C:/aaa/bbb/ccc/ddd
Существует несколько вариантов сохранения/удаления префикса и трейлинг-разделителя. Вы можете использовать один и тот же класс FilenameUtils для захвата имени из результата, используйте lastIndexOf и т.д.
Я не думаю, что есть волшебный метод, чтобы получить это прямо. Однако, это должно быть хорошо:
File f = new File("C:/aaa/bbb/ccc/ddd/test.java");
String path = f.getParent();
System.out.println(path.substring(path.lastIndexOf("\\")+1,path.length()));
f.getParent() может быть нулевым, поэтому вы должны его проверить.
EDIT: Чтобы убедиться, что результат выглядит следующим образом: C:/AAA/ВВВ/ссс/ддд
Используйте ниже,
File file = new File("file/path");
String parentPath = file.getAbsoluteFile().getParent();
Если у вас есть только путь String и вы не хотите создавать новый объект File, вы можете использовать что-то вроде:
public static String getParentDirPath(String fileOrDirPath) {
boolean endsWithSlash = fileOrDirPath.endsWith(File.separator);
return fileOrDirPath.substring(0, fileOrDirPath.lastIndexOf(File.separatorChar,
endsWithSlash ? fileOrDirPath.length() - 2 : fileOrDirPath.length() - 1));
}
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"
если вам нужно добавить папку "ddd" другим путем;
String currentFolder= "/" + currentPath.getName().toString();