Advertisement
Guest User

Untitled

a guest
Jul 24th, 2017
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.00 KB | None | 0 0
  1. package com.javarush.task.task31.task3111;
  2.  
  3. import java.io.IOException;
  4. import java.nio.file.FileVisitResult;
  5. import java.nio.file.Files;
  6. import java.nio.file.Path;
  7. import java.nio.file.SimpleFileVisitor;
  8. import java.nio.file.attribute.BasicFileAttributes;
  9. import java.util.ArrayList;
  10. import java.util.List;
  11.  
  12. public class SearchFileVisitor extends SimpleFileVisitor<Path> {
  13. private String partOfName = null;
  14. private String partOfContent = null;
  15. private int minSize = 0;
  16. private int maxSize = 0;
  17.  
  18. private boolean minSizeCheck;
  19. private boolean maxSizeCheck;
  20. private boolean partOfNameCheck;
  21. private boolean partOfContentCheck;
  22.  
  23. private List<Path> foundFiles = new ArrayList<>();
  24.  
  25. public SearchFileVisitor() {
  26. }
  27.  
  28. public void setPartOfName(String partOfName) {
  29. this.partOfName = partOfName;
  30. this.partOfNameCheck = true;
  31. }
  32.  
  33. public void setPartOfContent(String partOfContent) {
  34. this.partOfContent = partOfContent;
  35. this.partOfContentCheck = true;
  36. }
  37.  
  38. public void setMinSize(int minSize) {
  39. this.minSize = minSize;
  40. this.minSizeCheck = true;
  41. }
  42.  
  43. public void setMaxSize(int maxSize) {
  44. this.maxSize = maxSize;
  45. this.maxSizeCheck = true;
  46. }
  47.  
  48. public List<Path> getFoundFiles() {
  49. return foundFiles;
  50. }
  51.  
  52. @Override
  53. public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
  54.  
  55. if (partOfNameCheck && !file.getFileName().toString().contains(partOfName)) {
  56. return FileVisitResult.CONTINUE;
  57. }
  58.  
  59. if (partOfContentCheck && !new String(Files.readAllBytes(file)).contains(partOfContent)) {
  60. return FileVisitResult.CONTINUE;
  61. }
  62. if (minSizeCheck && attrs.size() < minSize) {
  63. return FileVisitResult.CONTINUE;
  64. }
  65. if (maxSizeCheck && attrs.size() > maxSize) {
  66. return FileVisitResult.CONTINUE;
  67. }
  68.  
  69. foundFiles.add(file);
  70.  
  71. return FileVisitResult.CONTINUE;
  72. }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement