#java
Проблема заключается в том, что в папке есть файлы со следующим названием. Same_name.RTF Same_name.RTF.p7s И первый файл этот метод считает папкой. Настойчиво и непреклонно. Как все таки определить папка это или файл? Точку искать не предлагайте, там есть папки с ней. Первое расширение может быть разным. Поиск идет в сетевой папке. Изначальный вариант: String[] dirList = curentFolder.list((File dir, String name) -> return dir.isDirectory());
Ответы
Ответ 1
Тут нет никакой проблемы, вы не правильно используете 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. * @returntrue
if and only if the name should be * included in the file list;false
otherwise. */ boolean accept(File dir, String name); } т.е. dir это текущая директория, в которой были найдены файлы, естественно ваш фильтр всегда будет возвращать true А вот пример кода, который должен делать то, что вы хотите Listdirectories = Files .list(Paths.get("current_directory")) .filter(Files::isDirectory) .map(Path::toString) .collect(Collectors.toList()); System.out.println(directories);
Комментариев нет:
Отправить комментарий