直接使用Files.deleteIfExists()方法会在文件夹非空时抛出DirectoryNotEmptyException异常。 因此使用walk方法将文件夹下文件及文件夹删除,避免使用递归方法,展现优雅。
String root = "./examplePath";
Files.walkFileTree(Paths.get(root), new SimpleFileVisitor<Path>(){
@Override
public FileVisitResult visitFile(Path file,
BasicFileAttributes attrs) throws IOException {
Files.delete(file);
logger.info("文件被删除 : {}", file);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult postVisitDirectory(Path dir,
IOException exc) throws IOException {
Files.delete(dir);
logger.info("文件夹被删除: {}", dir);
return FileVisitResult.CONTINUE;
}
});
Files.deleteIfExists(Paths.get(root));
|