Проблема заключается в том, что в папке есть файлы со следующим названием.
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);
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Недавно прочел книгу шаблоны проектирования,написанную Марком ГрантомТам были освещены основные паттерны проектирования, но у меня появилось...
У меня возник вопрос относящееся к видео стримуНапример видео воспроизводится онлайн, во время воспроизведения нужно ли проверять соединение...
Исключение выходит если запускаю в потоке, а без потока не появляется вроде быКак подправить чтоб без бага было
Прошу посоветовать книги по олимпиадному (школьному) программированию и вообще, что стоит учить, на данный момент читаю книгу Роберта Седжевика...