Подтвердить что ты не робот

Как получить только имя родительского каталога определенного файла

Как получить ddd от имени пути, где находится test.java.

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

Ответ 1

Используйте 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 и т.д.

Ответ 2

Я не думаю, что есть волшебный метод, чтобы получить это прямо. Однако, это должно быть хорошо:

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/ВВВ/ссс/ддд

Ответ 3

Используйте ниже,

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

Ответ 4

Если у вас есть только путь 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));
}

Ответ 5

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