Проблема заключается в том, что в папке есть файлы со следующим названием.
Same_name.RTF
Same_name.RTF.p7s
И первый файл этот метод считает папкой. Настойчиво и непреклонно. Как все таки определить папка это или файл?
Изначальный вариант:
String[] dirList = curentFolder.list((File dir, String name) -> return dir.isDirectory());
Тут нет никакой проблемы, вы не правильно используете filter.
А именно, если посмотреть javadoc, то там написано:
@FunctionalInterface
public interface FilenameFilter {
/**
* Tests if a specified file should be included in a file list.
*
* @param dir the directory in which the file was found.
* @param name the name of the file.
* @return <code>true</code> if and only if the name should be
* included in the file list; <code>false</code> otherwise.
*/
boolean accept(File dir, String name);
}
т.е. dir это текущая директория, в которой были найдены файлы, естественно ваш фильтр всегда будет возвращать true
А вот пример кода, который должен делать то, что вы хотите
List<String> directories =
Files
.list(Paths.get("current_directory"))
.filter(Files::isDirectory)
.map(Path::toString)
.collect(Collectors.toList());
System.out.println(directories);
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости