版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38225558/article/details/82466063
boolean
delete()
删除此抽象路径名表示的文件或目录。删除文件:存在文件则直接删除返回true,如果不存在返回false
删除目录:
①:为空:直接删除
②:不为空:删不掉 (需要先删除文件夹里面所有文件,再删除文件夹)
③:不存在直接返回false
注意:delete方法 ==》直接从磁盘中删除,不能像回收站一样可以恢复!!
/**
* File删除文件和文件夹方法:
* 1.删除文件:存在文件则直接删除返回true,如果不存在返回false
* 2.删除目录:
* ①:为空:直接删除
* ②:不为空:删不掉 (需要先删除文件夹里面所有文件,再删除文件夹)
* ③:不存在直接返回false
* 注意:delete方法 ==》直接从磁盘中删除,不能像回收站一样可以恢复!!
* @author 郑清
*/
public class Demo {
public static void main(String[] args) {
//删除D:/1 路径下的1.txt文件
File file = new File("D:/1/1.txt");
System.out.println(file.delete());
//删除D:/1 路径下的新建文件夹 为空的话可直接使用delete方法删除
File file2 = new File("D:/1/新建文件夹");
System.out.println(file2.delete());
//删除D:/1 路径下的新建文件夹2 不为空的情况下 ==》deleteFile 先删除文件夹里的所有文件 再删除文件夹
File file3 = new File("D:/1/新建文件夹2");
deleteFile(file3);
}
/*
* 如果是文件 ==》直接删除
* 如果是目录 ==》必须先删除里面每一层目录里的所有文件,最后才能删除外层的目录
* 原因:不为空的话 删不了
*/
public static void deleteFile(File file) {
if(file.exists()) {//判断路径是否存在
if(file.isFile()){//boolean isFile():测试此抽象路径名表示的文件是否是一个标准文件。
file.delete();
}else{//不是文件,对于文件夹的操作
//保存 路径D:/1/新建文件夹2 下的所有的文件和文件夹到listFiles数组中
File[] listFiles = file.listFiles();//listFiles方法:返回file路径下所有文件和文件夹的绝对路径
for (File file2 : listFiles) {
/*
* 递归作用:由外到内先一层一层删除里面的文件 再从最内层 反过来删除文件夹
* 注意:此时的文件夹在上一步的操作之后,里面的文件内容已全部删除
* 所以每一层的文件夹都是空的 ==》最后就可以直接删除了
*/
deleteFile(file2);
}
}
file.delete();
}else {
System.out.println("该file路径不存在!!");
}
}
}