需求:删除指定目录的文件和文件夹
步骤:首先需要遍历出所有的文件夹和文件,然后判断是否为文件【是文件则直接删除,是目录的话 “递归”,再次调用本函数,知道删除所有文件】,删除所有文件后,在它循环外删除目录。
主要部分代码:
package FilePage;
import java.io .File;
import java.io .IOException;
public class DelFile {
public static void main(String[] args) throws IOException{
File f=new File("A");
delFile(f);//封装代码
}
//删除
public static void delFile(File f){
if(!f.exists()){return;}//判断是否存在这个目录
File [] f_Arr=f.listFiles();//获取目录的所有路径表示的文件
for(File f_val : f_Arr){
System.out.println(f_val.getName());
//递归
if(f_val.isDirectory()){
delFile(f_val);//递归调用自己
}
f_val.delete();//不是文件夹则删除该文件
}
f.delete();//删除该目录
}
}
全部代码,创建文件夹,再删除整个文件和文件夹:
package FilePage;
import java.io
.File;
import java.io
.IOException;
public class DelFile {
public static void main(String[] args) throws IOException{
File f=new File("A");
delFile(f);
// addFile();
//System.out.println(f.delete());
}
//添加文件夹
public static void addFile() throws IOException{
File f=new File("A");
f.mkdir();
File f1=new File("A/A.txt");
f1.createNewFile();
File f_b=new File("A/B");
f_b.mkdirs();
File f_b1=new File("A/B/B.txt");
f_b1.createNewFile();
File f_c=new File("A/C");
f_c.mkdirs();
File f_c1=new File("A/C/C.txt");
f_c1.createNewFile();
}
//删除
public static void delFile(File f){
if(!f.exists()){return;}
//if(!f.isDirectory()){return;}
//获取当前目录下的所有文件
File [] f_Arr=f.listFiles();
for(File f_val : f_Arr){
System.out.println(f_val.getName());
//递归
if(f_val.isDirectory()){
delFile(f_val);
}else{
f_val.delete();
}
f_val.delete();
}
f.delete();
}
}