java根据所给的根目录获取底下所有文件夹结构
所写工具类背景:项目经理叫我写个工具类实现:给个项目的根目录分析java文件及jsp文件。记录文件类型、路径、文件名和包名。
定义的实体类(这里我用了easypoi以后方便写入excel文档)
@Data public class ReadExcelDataEntity implements Serializable {@Excel(name = "文件", orderNum = "1")private String fileType;@Excel(name = "名称", orderNum = "2")private String fileName;@Excel(name = "路径", orderNum = "3")private String filePath;@Excel(name = "包名", orderNum = "4")private String packageName; }
工具类:
public class FindAllFile {private static List<String> allList = new ArrayList<>();/*** 根据根目录获取所有路径信息** @param f File* @return allList*/public static List<String> getFile(File f) {File[] fList = f.listFiles();for (int i = 0; i < fList.length; i++) {if (fList[i].isDirectory() == true) {getFile(fList[i]);} else {allList.add(fList[i].getAbsolutePath());}}return allList;}/*** 根据类型获取class一览** @param f File* @param fileType 文件类型* @return*/public static List<ReadExcelDataEntity> findAllFileByFileType(File f, String fileType) {//清空静态allList多次调用影响数据 allList.clear();List<ReadExcelDataEntity> list = new ArrayList<>();String rootPath = f.getPath();String root = rootPath.replace("\\", "\\\\");getFile(f);allList.stream().forEach(x -> {if (x.endsWith(fileType)) {ReadExcelDataEntity entity = new ReadExcelDataEntity();//获取文件类型String[] split = x.split("\\.");String type = split[split.length - 1];File file = new File(x);//获取文件名称String name = file.getName();//获取文件路径String filePath = x.replaceAll(root, " ");entity.setFileType(type);entity.setFilePath(filePath.trim());entity.setFileName(name);FileReader fr = null;BufferedReader br = null;if ("java".equals(fileType)) {//获取文件类型为java的包名try {fr = new FileReader(file);br = new BufferedReader(fr);String line = "";while ((line = br.readLine()) != null) {if (line.indexOf("package") != -1) {line = line.replaceAll("package", " ");entity.setPackageName(line.trim());list.add(entity);return;}}} catch (Exception e) {e.printStackTrace();} finally {try {fr.close();br.close();} catch (Exception e) {e.printStackTrace();}}}list.add(entity);}});return list;}/*** 去除前后字符** @param args 传入的字符串* @param beTrim 去除格式* @return*/public static String trim(String args, char beTrim) {int st = 0;int len = args.length();char[] val = args.toCharArray();char sbeTrim = beTrim;while ((st < len) && (val[st] <= sbeTrim)) {st++;}while ((st < len) && (val[len - 1] <= sbeTrim)) {len--;}return ((st > 0) || (len < args.length())) ? args.substring(st, len) : args;} }
核心代码:
public static List<String> getFile(File f) {File[] fList = f.listFiles();for (int i = 0; i < fList.length; i++) {if (fList[i].isDirectory() == true) {getFile(fList[i]);} else {allList.add(fList[i].getAbsolutePath());}}return allList;}
测试类:
public class Test3 {public static void main(String[] args) {File file = new File("E:\\日本\\branches\\20190104\\skyreservesatellite");List<ReadExcelDataEntity> java = FindAllFile.findAllFileByFileType(file, "jsp");System.out.println(java);System.out.println(java.size());} }
测试结果:
jsp文件:
[ReadExcelDataEntity(fileType=jsp, fileName=addflightinfo.jsp, filePath=\skyreservesatellite\satellite\addflightinfo.jsp, packageName=null)]
java文件:
[ReadExcelDataEntity(fileType=java, fileName=UtilCheckerSso.java, filePath=\skyreservesatellite\satellite\src\sky\agency\checker\UtilCheckerSso.java, packageName=sky.agency.checker;)]
转载于:https://www.cnblogs.com/jiangweichao/p/10303306.html
java根据所给的根目录获取底下所有文件夹结构相关推荐
- java 文件大小统计工具类_Java获取文件大小,文件夹内文件个数的工具类
package cn.edu.hactcm.cfcms.utils; import java.io.File; import java.io.FileInputStream; import java. ...
- 获取应用程序文件夹路径的最佳方法
我看到有一些方法可以获取应用程序文件夹路径: Application.StartupPath System.IO.Path.GetDirectoryName( System.Reflection.As ...
- microsoft visual sourcesafe explorer 获取不了文件夹的解决方法
使用vss explorer 8.0一段时间后发现, 获取不了文件夹目录,没有弹出选择可复选树型的目录框.重装了两次 microsoft visual sourcesafe explorer 8.0都 ...
- Python编程语言学习:两行代码输出根目录下所有子文件夹的绝对路径、相对路径
Python编程语言学习:两行代码输出根目录下所有子文件夹的绝对路径.相对路径 目录 两行代码输出根目录下所有子文件夹的绝对路径.相对路径 两行代码输出根目录下所有子文件夹的绝对路径.相对路径 #Py ...
- [10月4日的脚本] 获取Office365邮箱文件夹的权限
脚本下载: GetO365MailboxFolderPermission.ziphttp://gallery.technet.microsoft.com/scriptcenter/Script-to- ...
- android 根目录uri,如何在根目录下创建一个文件夹Android
我需要在根目录下创建CAT_IMG文件夹,并在列表视图中检索它.但CAT_IMG文件夹不在根目录中创建.我在清单文件中添加了权限.请帮我在根目录下创建一个文件夹.如何在根目录下创建一个文件夹Andro ...
- Mac根目录下无法创建文件夹
问题场景:需要在根目录下创建data文件夹,出现 Read-only file system 字样 解决方案: 重新启动,在启动的时候按command+R,进入Recovery模式 关闭sip 在to ...
- windows获取文件列表及文件夹结构
1. 获取文件列表 命令: dir /B >lb.txt 查看磁盘D下的文件列表: 在D盘根目录下会生成文本文件lb.txt 2. 获取文件夹结构 命令: tree /f >1.txt 查 ...
- php文件安全访问权限,如何解决“若要获取访问该文件夹的权限,您需要使用安全选项卡”的问题...
解决"若要获取访问该文件夹的权限,您需要使用安全选项卡"的方法:首先打开用户账户工具:然后依次选择"用户名称>组成员>管理员":接着点击" ...
- 解决Python3.7根目录中没有Scripts文件夹
一般会报错'pip' 不是内部或外部命令,也不是可运行的程序或批处理文件. 1.打开命令行输入python -m ensurepip 2.查看Python根目录下的Scripts文件夹中是否有pip相 ...
最新文章
- 【编程语言】JAVA | Windows10下JAVA的环境配置(绝对路径)
- 《系统集成项目管理工程师》必背100个知识点-26项目范围管理
- eventBus 与fragment
- Nginx、servlet、redis、sentinel、nacos、sprng-cloud、
- Android 系统(207)---如何自学 Android?
- mustache.js html模板,js模板引擎Mustache将h5模板页面转化为小程序页面
- 腾讯Tiny OS 组合 NB-IoT,值得程序员一试吗?
- python查内置函数,怎么查看python内置函数
- BP算法(误差逆传播算法)简单实现
- snapchat_如何重播Snapchat快照
- [渝粤教育] 中国传媒大学 计算机组成原理 参考 资料
- 解决IDEA报错Address localhost:1099 is already in use
- 到底怎么买保险?附保险配置实战
- 创建一个数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)
- 亲身经历——短信诈骗
- 【运维大宝剑Bigsword】之elasticsearch集群分析
- 如何将写好的python程序打包成exe文件
- zabbix安装与配置-zabbix安装与配置
- HDU2067——小兔的棋盘(迷宫,动态规划,卡特兰数)
- fmt库需要使用-fPIC参数recompile
热门文章
- 2012.4.13总结(一)
- html如何转换成电子表,如何轻松将电子表格转换为HTML [快速提示] | MOS86
- 如何读出烧录程序.bin的数据_如何改变程序搜索数据的方式?使用Redis进行搜索...
- C语言——变量篇(一)变量关键字static、auto、extern、register
- css3 flex布局九宫格,css3最全flex布局结构整理
- linux route配置网关,Linux使用route配置路由
- awk取列 shell 读文件_大厂运维高手如何打造核心竞争力?这些Shell命令合集得知道!...
- presto查询报错
- Hive依据key获取value
- 【剑指offer】之字形打印二叉树,C++实现