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

java 用递归的方式删除指定的目录及下面的子目录和文件

程序员文章站 2022-03-03 09:06:47
...

话不多说,直接上代码

private static void delFolder(String filepath) throws IOException {
		File f = new File(filepath);// 定义文件路径
		if (f.exists()) {
			if (f.isFile()) {// 判断是文件还是目录
				f.delete();
			} else if (f.isDirectory()) {
				if (f.listFiles().length == 0) {// 若目录下没有文件则直接删除
					f.delete();
				} else {// 若有则把文件放进数组,并判断是否有下级目录
					File delFile[] = f.listFiles();
					int i = f.listFiles().length;
					for (int j = 0; j < i; j++) {
						if (delFile[j].isDirectory()) {
							delFolder(delFile[j].getAbsolutePath());// 递归调用del方法并取得子目录
						}
						delFile[j].delete();// 删除文件
					}
					// delFolder(filepath);
					delFolder(f.getPath());
				}
			}
		}
	}

正好今天用到,但是在网上随便找了一下,发现很多都是删除目录下的文件及其子目录,并没有删除目录的本身,因此做一下小小的改动,希望能够帮到大家!