Java实现删除文件夹,会想到使用File对象的delete方法,里面也会涉及到递归,毕竟文件夹中包含的可能是文件或者是文件夹。File的delete方法的缺点我觉得是删除异常时不会有异常抛出,这就不太利于问题的发现,而java.nio.file.Files中的delete方法就能够更好的解决这个问题。
File#delete
也可以使用File#deleteOnExit()方法
public static void deleteDir(String dirPath) {
File file = new File(dirPath);
file.setWritable(true); //避免有删除权限问题
if (file.isDirectory()) {
File[] files = file.listFiles();
for (File f : files) {
deleteDir(f.getPath());
}
}
file.delete();
}
Files#delete
也可以使用Files#deleteIfExists()方法
private static void deleteDirectory(String dir) throws IOException {
File tempDir = new File(dir);
tempDir.setWritable(true);
if (tempDir.isDirectory()) {
File[] files = tempDir.listFiles();
for (File f : files) {
deleteDirectory(f.getPath());
}
}
Files.delete(tempDir.toPath());
}
本文探讨了在Java中删除文件夹的多种方法,包括使用File对象的delete方法及其局限性,对比了File与java.nio.file.Files中delete方法的优劣,详细介绍了递归删除目录的实现方式。
513

被折叠的 条评论
为什么被折叠?



