集册 Java实例教程 使用FileVisitor删除文件

使用FileVisitor删除文件

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

371
使用FileVisitor删除文件

import java.io.IOException;/*from NowJava.com - 时  代  Java*/

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;


class DeleteDirectory implements FileVisitor<Object> {

  boolean deleteFileByFile(Path file) throws IOException {

    return Files.deleteIfExists(file);

  }


  @Override

  public FileVisitResult postVisitDirectory(Object dir, IOException exc)

      throws IOException {


    if (exc == null) {

      System.out.println("Visited: " + (Path) dir);
      /**
       * nowjava - 时  代  Java 提 供 
      **/


      boolean success = deleteFileByFile((Path) dir);


      if (success) {

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

      } else {

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

      }

    } else {

      throw exc;

    }

    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 IOException {

    boolean success = deleteFileByFile((Path) file);

    if (success) {

      System.out.println("Deleted: " + (Path) file);

    } else {

      System.out.println("Not deleted: " + (Path) file);

    }

    return FileVisitResult.CONTINUE;

  }


  @Override

  public FileVisitResult visitFileFailed(Object file, IOException exc)

      throws IOException {

    return FileVisitResult.CONTINUE;

  }
展开阅读全文