File类递归删除文件方法

2019-12-04   70 次阅读


public static void de(File f){
        File [] b = f.listFiles();//获取包含file对象对应的子目录或者文件
        for(int i =0;i<b.length;i++){
            if(b[i].isFile()){//判断是否为文件
                b[i].delete();//如果是就删除
            }else{
                de(b[i]);//否则重新递归到方法中
            }
        }
        f.delete();//最后删除该目录中所有文件后就删除该目录
    }    
    public static void main(String[] args){
        File a = new File(//传入File类路径);

该方法中通过listFile()方法获取了包含子目录或文件的File数组。

案例:

package cn.hm1006;

import java.io.File;

public class Digui {

	public static void main(String[] args) {
		File a = new File("C:/Users/14417/Desktop/测试");
		di(a);
	}
	public static void di(File a){
		if(a.isDirectory()){
			File[] b = a.listFiles();
			for (int i = 0; i < b.length; i++) {
				if(b[i].isFile()){
					System.out.println(b[i].getName());
					b[i].delete();
				}else {
					di(b[i]);
				}
			}
			a.delete();
			if (a.isDirectory()) {
				System.out.println("删除完毕!");
			}
		}else{
			System.out.println("目标目录不存在");
		}
	}
}


Q.E.D.

知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

如人饮水、冷暖自知