JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема
Вопрос
  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Все вопросы
JavaRush/Помощь по Java задачам/Помогите пожалуйста!!! Что я не так сделал? где ошибка?
Никита Свиридов
30 уровень
  • 05.08.2023
  • 164просмотров
  • 2комментариев

Помогите пожалуйста!!! Что я не так сделал? где ошибка?

Вопрос по задаче Поиск скрытых файлов
Java Collections,  1 уровень,  4 лекция
Обсуждается


В классе Solution переопредели логику двух методов:
- visitFile кроме своей логики должен добавлять в archived все пути к zip и rar файлам
- visitFileFailed должен добавлять в failed все пути к недоступным файлам и возвращать SKIP_SUBTREE

Пример вывода:
D:/mydir/BCD.zip

Метод main не участвует в тестировании

Требования:
  • В классе Solution нужно переопределить метод visitFile.
  • Метод visitFile, кроме своей логики, должен добавлять в поле archived все пути к zip и rar файлам.
  • В классе Solution нужно переопределить метод visitFileFailed.
  • Метод visitFileFailed должен добавлять в поле failed все пути к недоступным файлам и возвращать SKIP_SUBTREE.
package com.javarush.task.task31.task3104; import java.io.IOException; import java.nio.file.*; import java.nio.file.attribute.BasicFileAttributes; import java.util.ArrayList; import java.util.EnumSet; import java.util.List; /* Поиск скрытых файлов */ public class Solution extends SimpleFileVisitor<Path> { public static void main(String[] args) throws IOException { EnumSet<FileVisitOption> options = EnumSet.of(FileVisitOption.FOLLOW_LINKS); final Solution solution = new Solution(); Files.walkFileTree(Paths.get("D:/"), options, 20, solution); List<String> result = solution.getArchived(); System.out.println("All archived files:"); for (String path : result) { System.out.println("\t" + path); } List<String> failed = solution.getFailed(); System.out.println("All failed files:"); for (String path : failed) { System.out.println("\t" + path); } } private List<String> archived = new ArrayList<>(); private List<String> failed = new ArrayList<>(); public List<String> getArchived() { return archived; } public List<String> getFailed() { return failed; } @Override public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { FileVisitResult result = super.visitFile(file, attrs); String fileName = file.getFileName().toString().toLowerCase(); if(fileName.endsWith(".zip") || fileName.endsWith(".rar")) { archived.add(fileName); } return result; } @Override public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException { FileVisitResult result = super.visitFileFailed(file, exc); String fileName = file.getFileName().toString(); failed.add(fileName.toString()); return FileVisitResult.SKIP_SUBTREE; } }
0
Комментарии (2)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Никита Свиридов
Уровень 30
Expert
7 августа 2023, 06:55
Спасибо visitFileFailed решение исправил и валидатор пропустил а вот visitFile я и до этого у себя тестил с return FileVisitResult.CONTINUE; но валидатор не пропускает
0
FlamieCyrex23
Уровень 1
5 августа 2023, 09:50
1)В @override метода visitFile (строка 44), ты не используешь ENUM для продолжения операции. А именно тебе нужно возвращать не результат, он в целом тебе не нужен там. return FileVisitResult.CONTINUE; Ты видимо забыл, ибо в override visitFileFailed у тебя же есть SKIP_SUBTREE 2)А в методе visitFileFailed тебе нужно просто добавииить в failed //file.toString// Не нужно делать стринг значение из пути. Просто -
failed.add(file.toString());
        return FileVisitResult.SKIP_SUBTREE;
+1
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush