啥也不说,直接贴代码:
方式一:
public class TestDelFile {
//删除文件的函数
public boolean del(File file){
//获取当前文件夹下的所有文件及文件夹
File[] fArr = file.listFiles();
boolean flag = true;
//判断是否有子文件,有子文件递归调用
if(fArr.length > 0){
//判断是否为文件夹
if(file.isDirectory()){
//递归调用删除文件夹
for (File file2 : fArr) {
flag = del(file2);
//如果递归中删除失败,返回false
if(!flag){
return flag;
}
}
}
}
//没有子文件,直接删除
return file.delete();
}
public static void main(String[] args) throws IOException {
//1.创建一个文件,连同创建该文件的上级文件夹
TestDelFile tdf = new TestDelFile();
File file = new File("E:/你好/吗/少年/哈哈哈/a.txt");
if(!file.exists()){
//文件不存在,创建文件
System.out.println(file.mkdirs()?"文件创建成功":"文件创建失败");
}
//2.删除该文件夹及该文件夹下的所有文件和文件夹
File file2 = new File("E:/你好/吗");
boolean b1 = tdf.del(file2);
System.out.println(b1?"删除成功":"删除失败");
}
}
方式二、
public class TestDelFile {
//删除文件的函数
private static boolean deleteDir(File dir) {
if (dir.isDirectory()) {
String[] children = dir.list();
//递归删除目录中的子目录下
for (int i=0; i<children.length; i++) {
//使用有参构造方法构造子类对象
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
// 目录此时为空,可以删除
return dir.delete();
}
public static void main(String[] args) throws IOException {
//1.创建一个文件,连同创建该文件的上级文件夹
TestDelFile tdf = new TestDelFile();
File file = new File("E:/你好/吗/少年/哈哈哈/a.txt");
if(!file.exists()){
//文件不存在,创建文件
System.out.println(file.mkdirs()?"文件创建成功":"文件创建失败");
}
//2.删除该文件夹及该文件夹下的所有文件和文件夹
File file2 = new File("E:/你好/吗");
boolean b = tdf.deleteDir(file2);
System.out.println(b?"删除成功":"删除失败");
}
}