java清除空文件夹

一、 获取所有目录
复制代码
 public static class DeleteNullDirectory {

        public List getAllDirectorys(File root) {
            List list = new ArrayList();
            File[] dirs = root.listFiles();
            if (dirs != null) {
                for (int i = 0; i < dirs.length; i++) {
                    if (dirs[i].isDirectory()) {
                        System.out.println("name:" + dirs[i].getPath());
                        list.add(dirs[i]);
                        getAllDirectorys(dirs[i]);
                    }

                }
            }
            return list;
        }
复制代码

二、遍历目录删除空文件夹

复制代码
        public void removeNullFile(List< File> list) {
            for (int i = 0; i < list.size(); i++) {
                File temp = list.get(i);
                if (temp.isDirectory() && temp.listFiles().length <= 0) {
                    temp.delete();
                }
            }
        }
复制代码

完整代码

复制代码
package clearEmptyFile;

import java.io.File;
import java.util.ArrayList;
import java.util.List;
@SuppressWarnings("all")
public class demo3 {

    public static class DeleteNullDirectory {

        public List getAllNullDirectorys(File root) {
            List list = new ArrayList();
            File[] dirs = root.listFiles();
            if (dirs != null) {
                for (int i = 0; i < dirs.length; i++) {
                    if (dirs[i].isDirectory()) {
                        System.out.println("name:" + dirs[i].getPath());
                        list.add(dirs[i]);
                        getAllNullDirectorys(dirs[i]);
                    }

                }
            }
            return list;
        }
        //删除操作
        public void removeNullFile(List< File> list) {
            for (int i = 0; i < list.size(); i++) {
                File temp = list.get(i);
                if (temp.isDirectory() && temp.listFiles().length <= 0) {
                    temp.delete();
                }
            }
        }
        public static void main(String[] args) {
            DeleteNullDirectory m = new DeleteNullDirectory();
            List< File> list = m.getAllNullDirectorys(new File("C:"));
            System.out.println(list.size());
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i).getPath());
            }
            m.removeNullFile(list);
        }
    }
}
复制代码

 

posted @   panther125  阅读(1145)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示