Java中通过File类方法删除指定文件夹下的全部文件

Java中通过File类方法删除指定文件夹下的全部文件

在这里插入图片描述

  • 对delete的解说
  • 在这里插入图片描述
    那么问题来了!!!
    (②中的问题,怎么删除文件夹里所有文件,想必很多同学也和我一样懵,)
    别着急(往下看)
    在这里插入图片描述
    在这里插入图片描述
    要用到的方法
    在这里插入图片描述

(递归思想) 如果文件夹里面还有文件夹,就继续往下找(可能不太官方,个人理解)

接下来 代码展示
方法一:

package com.study;

import java.io.File;
import java.io.IOException;
/**
 1. 应用场景
 2.     delete删除只能删除空文件夹 和文件
 3.     删除指定文件夹
 */
public class Test1 {
    public static void main(String[] args) throws IOException {
        File f = new File("D://B");
        deleteFile(f);//删除完后并没有删除根目录
        f.delete();//删除根目录
        if (!f.exists()){
            //控制台打印
            System.out.println("删除成功");
        }
    }
    private static void deleteFile(File file) throws IOException {
        /**
         *  File[] listFiles() 
         *    返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 
         */
        File[] files = file.listFiles();
        if (files!=null){//如果包含文件进行删除操作
            for (int i = 0; i <files.length ; i++) {
                if (files[i].isFile()){
                    //删除子文件
                    files[i].delete();
                }else if (files[i].isDirectory()){
                    //通过递归的方法找到子目录的文件
                    deleteFile(files[i]);
                }
                files[i].delete();//删除子目录
            }
        }
    }
}

方法二: 和上面一样,把上面if代码块里的替换即可

if (files!=null){//如果包含文件进行删除操作
            for (File f:files) {
                //判断遍历出的文件是不是文件
                if (f.isFile()){
                    //如果是则直接删除
                    f.delete();
                }else if (f.isDirectory()){//通过递归的方法找到文件夹里的文件
                    deleteFile(f);
                }
                f.delete();//删除子目录
            }
         }

思路

通过File类删除文件夹全部内容:

  1. 只有当目录中全部文件删除掉之后才能删除目录
  2. 通过递归方式进入子目录
  3. 最后删除根目录
  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值