首页 > 技术文章 > 删除当前目录下所有文件以及空文件夹

xiaolibiji 2022-01-20 14:42 原文

业务中遇到,记录一下

    /**
     * 删除指定目录下的空文件夹,不包括自身
     *
     * @param file 文件总目录 file
     */
    public static void deleteFolder(File file) {
        File[] files = file.listFiles();
        if (files != null) {//如果包含文件进行删除操作
            for (File value : files) {
                if (value.isFile()) {
                    //删除子文件
                    value.delete();
                } else if (value.isDirectory()) {
                    //通过递归的方法找到子目录的文件
                    deleteFolder(value);
                }
                value.delete();//删除子目录
            }
        }
    }

当包含文件时不进行删除

    /**
     * 删除指定目录下的空文件夹,不包括自身目录
     */
    public boolean deleteEmptyFolder(String srcPath) {
        File file = new File(srcPath);
        List<String> fileList = getFiles(new ArrayList<String>(), file);
        //log.info(fileList.size() + "------------" + file.getName());
        if (fileList.size() == 0) {
            deleteFolder(file);
            return true;
        } else {
            log.info("[(" + file.getName() + ")有文件存在,不进行删除]");
            return false;
        }
    }

运行

    public static void main(String[] args) {
      File file =new File("D:\\test")
      deleteEmptyFolder(file) ? "[空文件夹删除成功!!]" : "[删除失败!]"
}

推荐阅读