Наверное я неправильно понимаю условии задачи.
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
byte[] content = Files.readAllBytes(file); // размер файла: content.length
String contentText = new String(content);
if (file.getFileName().toString().equals(partOfName)) { // Если имя совподает...
foundFiles.add(file);
} else if (contentText.contains(partOfContent)) { // Если в содержании файла есть такая строка...
foundFiles.add(file);
} else if (content.length < maxSize) { // Если размер файла меньше макса...
foundFiles.add(file);
} else if (content.length > minSize) { // Если размер файла больша мина....
foundFiles.add(file);
}
return super.visitFile(file, attrs);
}
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(500);
searchFileVisitor.setMaxSize(10000);
Files.walkFileTree(Paths.get("D:/SecretFolder"), searchFileVisitor);
List<Path> foundFiles = searchFileVisitor.getFoundFiles();
for (Path file : foundFiles) {
System.out.println(file);
}
}
}