Java 文件和目录全部删除

版权声明: https://blog.csdn.net/qq_36979290/article/details/82965811

需求:删除指定目录的文件和文件夹

步骤:首先需要遍历出所有的文件夹和文件,然后判断是否为文件【是文件则直接删除,是目录的话 “递归”,再次调用本函数,知道删除所有文件】,删除所有文件后,在它循环外删除目录。

主要部分代码:

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();
	}
}

猜你喜欢

转载自blog.csdn.net/qq_36979290/article/details/82965811