Всё работает, но не проходит валидацию.
package com.javarush.task.task31.task3111;
import java.io.*;
import java.nio.file.FileVisitResult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.SimpleFileVisitor;
import java.nio.file.attribute.BasicFileAttributes;
import java.util.ArrayList;
import java.util.List;
public class SearchFileVisitor extends SimpleFileVisitor<Path> {
private String partOfName;
private String partOfContent;
private int minSize = -1;
private int maxSize = -1;
private List<Path> foundFiles = new ArrayList<>();
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if ((partOfName == null || file.getFileName().toString().contains(partOfName)) &&
(minSize == -1 || file.toFile().length() > minSize) &&
(maxSize == -1 || file.toFile().length() < maxSize) &&
(partOfContent == null ||
new String(Files.readAllBytes(file)).contains(partOfContent))) {
foundFiles.add(file);
}
return FileVisitResult.CONTINUE;
}
public void setPartOfName(String partOfName) {
this.partOfName = partOfName;
}
public void setPartOfContent(String partOfContent) {
this.partOfContent = partOfContent;
}
public void setMinSize(int minSize) {
this.minSize = minSize;
}
public void setMaxSize(int maxSize) {
this.maxSize = maxSize;
}
public List<Path> getFoundFiles() {
return foundFiles;
}
}
В чем может быть проблема?package com.javarush.task.task31.task3111;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
/*
Продвинутый поиск файлов
*/
public class Solution {
public static void main(String[] args) throws IOException {
SearchFileVisitor searchFileVisitor = new SearchFileVisitor();
searchFileVisitor.setPartOfName("amigo");
searchFileVisitor.setPartOfContent("programmer");
searchFileVisitor.setMinSize(20);
searchFileVisitor.setMaxSize(10000);
Files.walkFileTree(Paths.get("/home/flowmaster/Projects/java/test/amigo.txt"), searchFileVisitor);
List<Path> foundFiles = searchFileVisitor.getFoundFiles();
for (Path file : foundFiles) {
System.out.println(file);
}
}
}