java递归获取文件树目录列表

article/2025/9/21 19:17:37

直接上代码:

public static List<FileTreeNode> getFileTree(File file) {List<FileTreeNode> baseTreeNodes = new ArrayList<>();File[] childFiles = file.listFiles();if (childFiles != null) {for (File listFile : childFiles) {FileTreeNode baseTreeNode = new FileTreeNode();baseTreeNode.setName(listFile.getName());baseTreeNode.setIfDir(listFile.isDirectory());baseTreeNode.setPath(listFile.getAbsolutePath());baseTreeNode.setLength(listFile.length());baseTreeNode.getChildren().addAll(getFileTree(listFile));baseTreeNodes.add(baseTreeNode);}}return baseTreeNodes;}

树节点定义

import lombok.Data;
import lombok.EqualsAndHashCode;import java.util.ArrayList;
import java.util.List;@Data
@EqualsAndHashCode(callSuper = false)
public class FileTreeNode {private String name;private String path;private Long length;private Boolean ifDir = false;//是否文件夹private List<FileTreeNode> children = new ArrayList<>();public void addChild(FileTreeNode treeNode) {if (children == null) {children = new ArrayList<>();}children.add(treeNode);}
}

效果

[{"children": [{"children": [],"ifDir": false,"length": 6462,"name": "index.vue"}],"ifDir": true,"length": 0,"name": "dept"},{"children": [{"children": [],"ifDir": false,"length": 4199,"name": "dictDetail.vue"},{"children": [],"ifDir": false,"length": 5090,"name": "index.vue"}],"ifDir": true,"length": 0,"name": "dict"}
]

 

需要完整源码


http://chatgpt.dhexx.cn/article/2fsgDILX.shtml

相关文章

FileFilter过滤器的使用方法

过滤器原理 public static void main(String[] args) {File f1 new File("D:\\FA\\JAVAspace\\FightingLangOwner\\Demo\\src\\DemoFile");getFileName(f1);}public static void getFileName(File f1){File[] arrFile f1.listFiles(new FileFilterImp());for (Fil…

Java8实战笔记:第一部分(1~3章)

1.为什么关心Java8 和大多数书本一样&#xff0c;书本的第一章都起统领全书的作用&#xff0c;上来就是一个疑问&#xff1f;Java8怎么还在变&#xff0c;语言的变化离不开程序员对性能和代码简化的需求&#xff0c;进而引出了流处理、Lambda表达式、方法引用、并行化的相关概…

java 遍历目录下所有文件_java实现遍历某个目录(包括子目录)下的所有文件

在java中遍历一个文件夹里边的所有文件,可以有两种方式: 一、递归遍历 通常也是开发者第一时间能想到的方法。 递归遍历的优点是: 实现起来相对简单,代码量相对较少,执行效率较高。 缺点是: 比较吃内存,对硬件要求较高。 在线视频教程分享:java在线视频 具体算法如下:…

java解压缩gzip_利用Java实现压缩与解压缩(zip、gzip)支持中文路径

zip扮演着归档和压缩两个角色&#xff1b;gzip并不将文件归档&#xff0c;仅只是对单个文件进行压缩&#xff0c;所以&#xff0c;在UNIX平台上&#xff0c;命令tar通常用来创建一个档案文件&#xff0c;然后命令gzip来将档案文件压缩。 Java I/O类库还收录了一些能读写压缩格式…

ubuntu-20.04 Astra-pro configuration

In function ‘char* strncpy(char*, const char*, size_t)’, inlined from ‘Agent::queryLocalData(std::string&, ResponseDataT&)’ at ./Agent/Agent.cc:715:14: /usr/include/x86_64-linux-gnu/bits/string_fortified.h:106:34: error: ‘char* __builtin_s…

Java中获取本地某一个目录下的所有文件和文件夹

在从事web开发工作中&#xff0c;经常需要对本地某一个目录下的文件进行处理&#xff0c;而在这之前&#xff0c;我们需要做的就是获取到这个目录下的文件。 1 String filepath "D:\file";//D盘下的file文件夹的目录 2 File file new File(filepath);//File类型可以…

企业微信和个人微信的区别

从 个人身份、朋友圈、加好友、社群管理、数据统计&#xff0c;这5个方面来进行对比&#xff1a; 一、 个人身份 企业微信和个人微信有一个很大的区别&#xff0c;就是企业品牌的展示。 企业微信自带一个品牌的小尾巴&#xff0c;当用户初次添加你时&#xff0c;企微自带的品牌…

企业微信or个人微信?三个角度让你不再纠结

如今承载了12亿用户的企业微信已经与微信环境做到高度的融合互通&#xff0c;如实现了互相添加好友等功能&#xff0c;可以看出腾讯推动企业微信扩大商用场景的决心。回想2020年5月某社群工具被封杀后&#xff0c;微信社群运营就一夜回到解放前人工成本高企的状态&#xff0c;那…

安卓移动开发初步——微信页面制作

进行APP门户制作时选择在Android studio中建立简单的微信页面&#xff0c;内容包括&#xff1a; ①页面布局与微信页面基本相似&#xff1b; ②点击图标能实现页面的切换&#xff1b; ③点击图标时有选中效果(图标亮起)&#xff1b; 目录 效果图 底部布局实现 顶部布局实现…

微信小程序 java家庭个人收支理财记账本springboot

该系统主要分为登录注册、资金管理、统计报表、趋势图线、个人信息五大模块。 登录管理:新用户填写相关的注册信息&#xff0c;获得登陆账号和密码&#xff0c;已注册用户通过账号和密码登录系统。 资金管理:用户登录到系统后可以通过资金管理对家庭资金进行管理&#xff0c;包…

微信公众号基础入门知识

微信公众号的类型微信公众号一共有四种账号类型&#xff0c;除了我们日常接触的订阅号和服务号外&#xff0c;还包括企业微信和小程序。 订阅号 订阅号主要偏向于为用户传达资讯&#xff0c;其功能类似于报纸杂志&#xff0c;为读者传播消息&#xff0c;每天可以群发一次消息。…

如何零基础创建自己的微信小程序

目录 创建微信小程序 步骤&#xff1a; 1、打开浏览器搜索微信公众平台 2、一般是先要注册的&#xff08;当然已经有的就不需要了&#xff09; 3、选择注册的类型 关于“小程序怎么开发自己的小程序”这个不少人关注的问题&#xff0c;小编针对性的给出详细教程&#xff0c;…

微信云托管体验

最近在了解微信云托管&#xff0c;体验了一番&#xff0c;很好用。 我觉得微信云托管是降低了运维的难度&#xff0c;可以不用在购买服务器了&#xff0c;直接使用微信云托管环境很方便。 摘自微信官方文档&#xff1a;微信云托管 是微信团队提供的以云原生为基础的&#xff0…

微信OAuth2.0授权登录

微信OAuth2.0授权登录 OAuth2.0简介OAuth2的应用微服务安全社交登录 网页微信登录前期准备授权流程 服务器端开发需求网页显示二维码返回微信登录参数添加配置添加配置类controller 前端显示登录二维码封装api请求 处理微信回调添加httpclient工具类添加回调接口获取access_tok…

个人申请微信公众号步骤(含截图)

1.打开微信公众平台&#xff1a;https://mp.weixin.qq.com&#xff0c;点击“立即注册” 2.选择“注册账号类型”为“订阅号” 3.填写信息&#xff0c;注意一个邮箱只能注册一次&#xff0c;且后期不能更改。如果你的邮箱之前注册个“微信小程序”账号也是不能用的。 4.点击“…

仿制微信/QQ在线聊天网站

webchat 一款基于Javascriptexpresssocket.io构成的网络在线聊天应用 &#x1f61a;项目仍在维护中&#xff0c;欢迎各位大佬PR&#x1f389;和star⭐ 具体效果可以访问http://chat.chuyuxuan.xyz:4400 2020年10月10日前该链接有效&#xff0c;别问为啥&#xff0c;问就是服…

电商卖家做微营销是该做微信个人号还是公众号?

近两年&#xff0c;关于传统企业转型、微营销、社交电商、工业4.0什么的炒作如火如荼&#xff0c;不管是传统企业还是创业团队&#xff0c;无一不关注微信营销。很多线下品牌和电商品牌&#xff0c;都纷纷布局微信营销&#xff0c;或者将微信个人号及公众号作为店铺粉丝和老客户…

Android app集成微信支付

Android app集成微信支付 鉴于微信支付的文档入口不太容易找到、以及文档中有些逻辑不通或者容易产生歧义或者缺失一些信息的情况&#xff0c;记录下此次接入的流程和需要关注的一些点。 使用的是app支付-> APP支付产品介绍 首先阅读介绍等&#xff0c;了解一些基础的概念…

集成微信登录

目录标题 集成微信登录1、OAuth21.1 作用1.2 多方授权的解决方法1.3 OAuth2最简向导1.4 OAuth2的应用 2、微信登录介绍2.1 前期准备2.2 授权流程 3、服务器端开发3.1 返回微信登录参数3.2 前端显示登录二维码3.3 处理微信回调3.4 回调返回页面 集成微信登录 1、OAuth2 1.1 作…

微信数据库解析总结

1.微信数据库解密 微信数据库在在哪个文件夹 EnMicroMsg.db的父文件加密规则是 md5("mm" uin)这样就可以准确的获取到db文件的位置. uin的获取&#xff1a;/data/data/com.tencent.mm/shared_prefs/auth_info_key_prefs.xml里面有个uinz字段&#xff0c;直接获取val…