IO流———File类的撤销删除

撤销删除的目录和文件:

删除目录和文件夹的思路:

1、先删除文件夹中的元素。首先判断文件夹是否为空。

           2、继续判断不为空的元素是子文件夹还是文件(isfile),是文件则直接删除。

           3、不是文件则就是子文件夹,再循环第二步判断子文件夹中的元素(遍历数组,递归方法)。

           4、循环结束,删除自身。

撤销删除的思路:

1、new两个集合,分别装删除的文件夹和文件。

2、再分别遍历两个集合,得到所有的文件夹和文件。实现撤销删除的功能。

package cn.itsource.homework;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;

public class HomeWork_02 {
		/*2、完成上课所提到的删除方法
		    【高级部分】:撤销删除(撤销上面刚删除的目录)功能
		     解题思路:创建一个容器,存储被删除掉的目录,然后遍历容器,撤销删除
		*/
	
	static ArrayList<File> a = new ArrayList<>();//装文件
	static ArrayList<File> b = new ArrayList<>();//装文件夹
	public static void main(String[] args) throws IOException {
		File file = new File("d:/movie");
		get(file);
		//拿到容器中的每一个文件对象进行创建
		for (File f1 : b) {
			f1.mkdirs();//创建文件夹
		}
		for (File f2 : a) {
			f2.createNewFile();//创建文件
		}
		
	}
	static void get(File f){
		if (f!=null) {//先判断文件夹不为空
			if (f.isFile()) {//判断文件夹中的元素是不是文件
				a.add(f);//返回此抽象路径名的绝对路径名字符串  添加到集合中
				f.delete();//是文件直接删除
			}else {//不是文件就是文件夹目录
				b.add(f);
				File[] listFiles = f.listFiles();//得到文件夹目录下的文件,用抽象的路径名数组表示
				if (f.length()!=0) {//继续判断子文件夹中不为空
					for (File file : listFiles) {//遍历数组
						get(file);//调用方法
					}
				}
				
			}
			f.delete();
		}
	}

}

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值