Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.javarush.task.task31.task3111;
- import java.io.IOException;
- 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;
- private int maxSize;
- private List<Path> foundFiles = new ArrayList<>();
- private boolean needPartOfName = false;
- private boolean needPartOfContent = false;
- private boolean needMinSize = false;
- private boolean needMaxSize = false;
- public void setPartOfName(String partOfName) {
- this.partOfName = partOfName;
- this.needPartOfName = true;
- }
- public void setPartOfContent(String partOfContent) {
- this.partOfContent = partOfContent;
- this.needPartOfContent = true;
- }
- public void setMinSize(int minSize) {
- this.minSize = minSize;
- this.needMinSize = true;
- }
- public void setMaxSize(int maxSize) {
- this.maxSize = maxSize;
- this.needMaxSize = true;
- }
- public List<Path> getFoundFiles() {
- return foundFiles;
- }
- @Override
- public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
- byte[] content = Files.readAllBytes(file); // размер файла: content.length
- if(needPartOfName && !(file.getFileName().toString().contains(partOfName))) {
- return FileVisitResult.CONTINUE;
- }
- if(needPartOfContent) {
- String s = new String(content);
- if (!s.contains(partOfContent)) {
- return FileVisitResult.CONTINUE;
- }
- }
- if (needMinSize && (content.length <= minSize)) {
- return FileVisitResult.CONTINUE;
- }
- if (needMaxSize && (content.length >= maxSize)) {
- return FileVisitResult.CONTINUE;
- }
- foundFiles.add(file);
- return super.visitFile(file, attrs);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment