Метод visitFile, кроме своей логики, должен добавлять в поле archived все пути к zip и rar файлам.
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;
import java.util.Objects;
/*
Поиск скрытых файлов
*/
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("C:\\Users\\Вадим\\Music\\Test\\Inside"), 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 {
Objects.requireNonNull(file);
Objects.requireNonNull(attrs);
if (file.endsWith(".rar") || file.endsWith(".zip")) {
archived.add(file.toAbsolutePath().toString());
}
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException {
failed.add(file.toAbsolutePath().toString());
return FileVisitResult.SKIP_SUBTREE;
}
}