在实际开发中往往会有删除某个目录的需求,而如果直接删除目录程序会报错,正确的删除方式应该是先删除该目录里的所有文件,再删除该目录。
本篇博文通过递归的方式将整个目录以及其中的文件夹全部删除,具体实例如以下代码所示:
package com.sjk.sheng;
import java.io.File;
public class Example {
public static void main(String[] args) {
//创建一个代表目录的file对象
File file = new File("F://sjk.txt");
//调用deleteDir删除方法
deleteDir(file);
}
public static void deleteDir(File dir) {
//判断传入的File对象是否存在
if(dir.exists()) {
//得到File数组
File[] files = dir.listFiles();
//遍历所有的子目录和文件
for(File file : files) {
if(file.isDirectory()) {
//如果是目录,递归调用deleteDir()
deleteDir(file);
} else {
//如果是文件,直接删除
file.delete();
}
}
//删除完一个目录里的所有文件后,就删除这个目录
dir.delete();
}
}
}
需要注意是,在java删除目录是从虚拟机直接删除而不走回收站,文件将无法恢复,因此在进行删除操作的时需谨慎!
来源:https://www.cnblogs.com/sheng-sjk/p/7620562.html