Java - 如果为空或满,则删除文件夹独立

时间:2015-12-22 13:18:10

标签: java directory

我需要删除文件夹/目录或内容,无论你是否只有JAVA

folder.delete()

不起作用。

我一直在寻找,但它们是过时的方法

2 个答案:

答案 0 :(得分:0)

尝试使用:

   FileUtils.deleteDirectory(File directory);

有关详细信息,请转到link1link2

答案 1 :(得分:0)

folder.delete()只会删除文件夹,如果它为空

如果要删除整个文件夹树,则需要将其删除,删除其中的所有文件,然后删除文件夹本身。

您可以使用Files.walkFileTree来完成此任务:

public static void deleteEntireFolder(File folder) throws IOException {
    if (!folder.isDirectory()) {
        folder.delete();
        return;
    }

    Files.walkFileTree(Paths.get(
            folder.getAbsolutePath()),//The folder path
            EnumSet.of(FileVisitOption.FOLLOW_LINKS),//Do you want to go through shortcuts?
            100,//How many folders deep you want to walk.
            new SimpleFileVisitor<Path>() {
                @Override
                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {

                    file.toFile().delete();

                    return FileVisitResult.CONTINUE;
                }
            });
}

您可能需要优化此方法,但就目前而言应该完成工作。