我需要删除文件夹/目录或内容,无论你是否只有JAVA
folder.delete()
不起作用。
我一直在寻找,但它们是过时的方法
答案 0 :(得分:0)
答案 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;
}
});
}
您可能需要优化此方法,但就目前而言应该完成工作。