23-IO流-41-IO流(File对象-练习-删除目录)

//【需求】删除一个带内容的目录

/*
 *File类里面的delete()方法只能删除空文件夹(没子文件夹没内容的文件夹),对于有内容的文件夹是删不掉的。必须从内向外删除。
 *且windows系统中,鼠标右键删除文件夹,其实也是从里往外删除,假设有个几十层嵌套的文件夹,那么右键删除会删好久,因为不断
 *从内向外递归。
 *
 *从里往外删,需要深度遍历。
 */


package demo;

import java.io.File;

public class RemoveDirTest {

	public static void main(String[] args) {

		File dir = new File("d:\\demodir");
		removeDir(dir);
	}

	public static void removeDir(File dir) {
		
		File[] files = dir.listFiles();
		
		for(int x = 0; x<files.length;x++){
			
			if(files[x].isDirectory())//若是目录,那么递归,直接将该目录files[x]传入removeDir函数中
		
				removeDir(files[x]);
			
			else
				System.out.println("file:"+files[x].delete());//不是目录,那就是文件,直接delete就可以删除
		}
		//到此是将文件夹中的文件全部删除,但是文件夹没有删除
		System.out.println("dir:"+dir.delete());//直接将空文件夹删掉
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值