欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

递归删除一个非空文件夹

程序员文章站 2022-05-30 14:48:52
...

java 用递归算法实现删除一个非空文件夹

package io_study.dir_test.delAllDir_exercises;

import java.io.File;

/**
 * @description: 删除非空文件夹增强练习
 * @author zdl
 */
public class DelAllDir {
	public static void main(String[] args) {
		// 1、创建路径
		String pathStr = "G:/All Users03";
		File src = new File(pathStr);
		// 2、 包装成方法来删除
		delNoNullDir(src);
	}
	
	public static void delNoNullDir(File src) {
		// 判断是否存在
		if(src.exists()) {
			// 路径存在时,判断是文件还是目录
			if(src.isFile()) {
				// 是文件的话,直接删除
				src.delete();
			} else {
				// 是目录的话,需要或的子孙级的 File[] 数组,然后递归本体
				File[] childs = src.listFiles();
				if(childs.length == 0) { // 递归头
					// 是空文件夹,可以直接删除
					src.delete();
				} else { // 递归体
					// 非空文件夹,需要先递归删除子孙级,然后删除本身
					for(File child : childs) {
						delNoNullDir(child);
					}
					// 删除本身
					src.delete();
					
				}
			}
		} else {
			System.out.println("路径不存在,请重新操作");
		}
	}
}

相关标签: io javaSE java