import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;/*** 文件目录转成树结构* @author lph*/
public class FileTreeUtil {/*** 用来存放数据 可存库*/private static List<Tree> list = new ArrayList<>();/*** 因为测试使用,当初主键id来用*/private static Integer id = 0;public static void main(String[] args) {//扫描此文件夹下面的所有文件String filepath = "e://test";//初始化父节点idint parentid = 0;try {file(filepath, parentid);} catch (FileNotFoundException e) {e.printStackTrace();}for (int i = 0; i < list.size(); i++) {Tree tree = list.get(i);System.out.println("id== " + tree.getId() + " parentId== " + tree.getParentId() + " url== " + tree.getPath());}}public static void file(String filepath, int parentid) throws FileNotFoundException {File file = new File(filepath);//1.判断文件if (!file.exists()) {throw new FileNotFoundException("文件不存在");}//2.文件if (file.isFile()) {String name = file.getName();String path = file.getAbsolutePath();Tree tree = new Tree(id++, name, path, parentid);list.add(tree);return;}//3.获取文件夹路径下面的所有文件递归调用;if (file.isDirectory()) {String name = file.getName();String path = file.getAbsolutePath();Tree tree = new Tree(id++, name, path, parentid);list.add(tree);String[] list = file.list();for (int i = 0; i < list.length; i++) {String s = list[i];//根据当前文件夹,拼接其下文文件形成新的路径String newFilePath = path + "\\" + s;file(newFilePath, tree.getId());}}}
}class Tree {private Integer id;//文件夹或者文件名称private String name;//全路径,或则部分路径,自己决定private String path;//父节点idprivate Integer parentId;public Tree() {}public Tree(Integer id, String name, String path, Integer parentId) {this.id = id;this.name = name;this.path = path;this.parentId = parentId;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getPath() {return path;}public void setPath(String path) {this.path = path;}public Integer getParentId() {return parentId;}public void setParentId(Integer parentId) {this.parentId = parentId;}@Overridepublic String toString() {return "Tree{" +"id=" + id +", name='" + name + '\'' +", path='" + path + '\'' +", parentId=" + parentId +'}';}
}
详细解决方案
java将本地文件目录转成树结构(递归)
热度:44 发布时间:2023-09-29 19:30:15.0
相关解决方案
- java 乱码 汉字是 ? 如何转换成汉字
- java web 登录次数限制,该如何解决
- java 工商银行网银支付 B2B的 都亟需什么,需要注意什么
- Java Applet程序从JDK6升级到7时遇到的有关问题
- java web 视频相干
- java 系统单点登录解决方案
- java 获取客户端IP解决办法
- JAVA 后台怎么获得前台页面FCKedit编辑器中的内容以及内容的样式
- java 正则化匹配有关问题
- JAVA WEB导航条,该怎么处理
- java 中Node 有关问题
- 吐了,java Timer 终止不了。
- java web开发解决办法
- 关于 java cast 有关问题,你明白不
- java ftp 下传和上载乱码有关问题
- java web项目上的一些文件
- Hibernate操作数据库 报错java.lang.Integer cannot be cast to java.lang.String如何改
- java struts 文件上载
- java web baidu map开发
- JAVA WEB导航条解决办法
- java 编写ftp上载
- java web中的一个有关问题,困扰小弟我很久了
- java web 与tomcat解决办法
- java web基于j2ee的一些有关问题
- java 内网外网的一个需求,该怎么处理
- jsp 页面 安插ArrayList 报错。为什么,已经加了import="java.util."了呀!
- java dwg 怎样用java把dwg便是aoutcad的格式文件转换成gif,jpg等格式
- 求《Java Web 程序设计与项目实践》解决办法
- java webservice解决方法
- java 与jsp,该怎么解决