为了账号安全,请及时绑定邮箱和手机立即绑定

“递归"获取/删除整个文件夹下的文件(转)

标签:
Java

获取

//获取所有文件
    public static void getAllFileName(String path, ArrayList<String> list) {
        File file = new File(path);
        //获取全部File
        //返回目录名加文件名
        //添加过滤器
        String[] strings = file.list();
        for (String string : strings) {
            System.out.println(string);
        }
        //这些路径名表示此抽象路径名所表示目录中的文件。
        File[] files = file.listFiles(new FileFilter() {
            @Override
            public boolean accept(File pathname) {
                return true;
            }
        });
        for (int i = 0; i < files.length; i++) {
            //判断是否是目录,是的话继续递归
            if (files[i].isDirectory()) {
                getAllFileName(files[i].getAbsolutePath(), list);
            } else {
                //否则添加到list
                //获取全部文件名
                list.add(files[i].getName());
                //获取全部包+文件名
                //list.add(files[i].getAbsolutePath());
            }
        }
    }

删除

//需要注意的是当使用file.delete()方法删除某一目录时,必须保证该目录下没有其他文件才能正确删除,否则将删除失败。
public static void deleteFolder(File folder) throws Exception {
        if (!folder.exists()) {
            throw new Exception("文件不存在");
        }
        File[] files = folder.listFiles();
        if (files != null) {
            for (File file : files) {
                if (file.isDirectory()) {
                    //递归直到目录下没有文件
                    deleteFolder(file);
                } else {
                    //删除
                    file.delete();
                }
            }
        }
        //删除
        folder.delete();

    }

————————————————
版权声明:本文为CSDN博主「qq_34341338」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_34341338/article/details/86584485

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消