集册 Java实例教程 按名称搜索文件

按名称搜索文件

欢马劈雪     最近更新时间:2020-01-02 10:19:05

593
按名称搜索文件
import java.io.IOException;/*来 自 nowjava.com - 时  代  Java*/

import java.nio.file.FileSystems;

import java.nio.file.FileVisitOption;

import java.nio.file.FileVisitResult;

import java.nio.file.FileVisitor;

import java.nio.file.Files;

import java.nio.file.Path;

import java.nio.file.Paths;

import java.nio.file.attribute.BasicFileAttributes;

import java.util.EnumSet;


public class Main {

  public static void main(String[] args) throws Exception {

    Path searchFile = Paths.get("test.jpg");

    Search walk = new Search(searchFile);

    EnumSet<FileVisitOption> opts = EnumSet.of(FileVisitOption.FOLLOW_LINKS);


    Iterable<Path> dirs = FileSystems.getDefault().getRootDirectories();

    for (Path root : dirs) {

      if (!walk.found) {

        Files.walkFileTree(root, opts, Integer.MAX_VALUE, walk);

      }/*from 时 代 J a v a 公 众 号*/

    }


    if (!walk.found) {

      System.out.println("The file " + searchFile + " was not found!");

    }


  }

}


class Search implements FileVisitor {


  private final Path searchedFile;

  public boolean found;


  public Search(Path searchedFile) {

    this.searchedFile = searchedFile;

    this.found = false;

  }


  void search(Path file) throws IOException {

    Path name = file.getFileName();

    if (name != null && name.equals(searchedFile)) {

      System.out.println("Searched file was found: " + searchedFile + " in "

          + file.toRealPath().toString());

      found = true;

    }

  }


  @Override

  public FileVisitResult postVisitDirectory(Object dir, IOException exc)

      throws IOException {

    System.out.println("Visited: " + (Path) dir);

    return FileVisitResult.CONTINUE;

  }


  @Override

  public FileVisitResult preVisitDirectory(Object dir, BasicFileAttributes attrs)

      throws IOException {

    return FileVisitResult.CONTINUE;

  }


  @Override

  public FileVisitResult visitFile(Object file, BasicFileAttributes attrs)

      throws 
展开阅读全文