1 //tempPath  系统临时文件夹
2 2 private List<String> getWsContentList(String tempPath) {
3 3      //wsFilePath  存放zip文件夹路径
4 4 File file = new File(wsFilePath);
5 5 File unzipFile = null;
6 6      
7 7      //获取所有zip文件
8 8 File[] files = file.listFiles();
9 9 try {
10 10 if (files != null && files.length > 0) {
11 11 String unzipPath;
12 12 for (File tempFile : files) {
13 13             //创建存放解压文件的临时文件夹
14 14 unzipPath = StrUtil.format("{}/unzip/{}", tempPath, String.valueOf(System.currentTimeMillis()));
15 15 unzipFile = new File(unzipPath);
16 16 if (!unzipFile.exists()) {
17 17 unzipFile.mkdir();
18 18 }
19 19 ZipUtil.unzip(tempFile, unzipFile);
20 20 }
21 21 }
22 22 } catch (Exception e) {
23 23 log.error(e.getMessage());
24 24 }
25 25
26 26      //到临时文件夹读取所有解压出来的文件
27 27 File wsFile = new File(StrUtil.format("{}/unzip", tempPath));
28 28 File[] wsFileList = wsFile.listFiles();
29 29 if (wsFileList != null && wsFileList.length > 0) {
30 30 List<String> wsFilePathList = new ArrayList<>();
31 31        //递归获取所有文件路径(非文件夹)
32 32 recursionReadFile(wsFileList, wsFilePathList);
33 33
           //获取所有文本文件的内容
34 34 List<String> wsContentList = readTextFile(wsFilePathList);
35 35 return wsContentList;
36 36 }
37 37 return null;
38 38 }
 1     public static List<String> recursionReadFile(File[] fileList, List<String> wsFilePathList) {
2 for (File file : fileList) {
3 if (file.isDirectory()) {
4 fileList = file.listFiles();
5 recursionReadFile(fileList, wsFilePathList);
6 } else {
7 wsFilePathList.add(file.getPath());
8 }
9 }
10 return wsFilePathList;
11 }
 1     private static List<String> readTextFile(List<String> wsFilePathList) {
2 if (CollUtil.isNotEmpty(wsFilePathList)) {
3 FileReader reader;
4 List<String> wsContent = new ArrayList<>(wsFilePathList.size());
5 for (int i = 0; i < wsFilePathList.size(); i++) {
6 reader = new FileReader(wsFilePathList.get(i));
7 wsContent.add(reader.readString());
8 }
9 return wsContent;
10 }
11 return null;
12 }

  获取系统临时路径:String tempPath = System.getProperty("java.io.tmpdir");

  最后执行完可以删除临时文件中解压出来的文件:FileUtil.clean(new File(StrUtil.format("{}/unzip", tempPath)));

  当中用到了三方hutool工具包。

  个人记录,下次再用到可以直接来搬。

递归获取zip中的文件的更多相关文章

  1. 背水一战 Windows 10 (90) - 文件系统: 获取 Package 中的文件, 可移动存储中的文件操作, “库”管理

    [源码下载] 背水一战 Windows 10 (90) - 文件系统: 获取 Package 中的文件, 可移动存储中的文件操作, “库”管理 作者:webabcd 介绍背水一战 Windows 10 ...

  2. Java非递归的方式获取目录中所有文件(包括目录)

    零.思路解析 对于给出的文件查看其下面的所有目录,将这个目录下的所有目录放入待遍历的目录集合中,每次取出该集合中的目录遍历,如果是目录再次放入该目录中进行遍历. 一.代码 /** * 非递归的方式获取 ...

  3. python递归获取目录下指定文件

    获取一个目录下所有指定格式的文件是实际生产中常见需求. import os #递归获取一个目录下所有的指定格式的文件 def get_jsonfile(path,file_list): dir_lis ...

  4. [Go] 递归获取目录下的文件

    操作示例: ./scan /Document/dir 代码: // 定义递归文件树结构体 type treeList struct { Path string `json:"path&quo ...

  5. android 获取Asset中Properties文件配置的键值对

    1 获取 AssetManager AssetManager assetManager = context.getApplicationContext().getAssets(); 2 获取流 Str ...

  6. 获取URL中的文件的扩展名

    问题: 尽可能多地写出获取文件扩展名的方法: //方法一(分割数组) function getExt($url){ $arr = explode('.',$url); $len = count($ar ...

  7. 获取项目中.txt 文件的内容

    package com.fh.controller.ruitai.util; import java.io.BufferedInputStream; import java.io.File; impo ...

  8. File类 递归 获取目录下所有文件文件夹

    package com.xiwi; import java.io.*; import java.util.*; class file{ public static void main(String a ...

  9. php递归获取目录下所有文件

    <?php function getFileList($dir){ $dir=iconv("utf-8","gb2312",$dir); if ($hea ...

  10. 用JS获取Html中所有图片文件流然后替换原有链接

    function displayHtmlWithImageStream(bodyHtml) { var imgReg = /<img.*?(?:>|\/>)/gi; var arr ...

随机推荐

  1. Linux 提权-NFS 共享

    本文通过 Google 翻译 NFS Share no_root_squash – Linux Privilege Escalation 这篇文章所产生,本人仅是对机器翻译中部分表达别扭的字词进行了校 ...

  2. 商业级java开发单体项目环境搭建

    写在开发前,端口经常被战占,windows10用以下命令先查先杀,netstat -aon | findstr "8080" taskkill /F /PID <PID> ...

  3. DP进阶合集

    (ps:本集合为Star_F总结的dp进阶知识,持续更新~. 转载本文章需要联系我,否则视为侵权!!) 前置知识:线性dp,背包,树形dp,区间dp 内容预览: 状压dp 数位dp dp优化(前缀和, ...

  4. 如何使用ventoy安装操作系统

    使用ventoy安装操作系统 vrntoy简介 简单来说,Ventoy是一个制作可启动U盘的开源工具. 有了Ventoy你就无需反复地格式化U盘,你只需要把 ISO/WIM/IMG/VHD(x)/EF ...

  5. Linux 有趣命令

    代码雨 1.上传软件包 Linux 获取 wget https://jaist.dl.sourceforge.net/project/cmatrix/cmatrix/1.2a/cmatrix-1.2a ...

  6. Cesium 实现可视域分析

    *前言:尝试了网上好多个版本的可视域分析,感觉都有一些问题,我这个也可能不是最完美的,但是我觉得对我来说够用了,实现效果如下* 此示例基于vue3上实现,cesium版本1.101.0 ,vite-p ...

  7. javaDoc生成方式

    命令行生成 在cmd控制台窗口上找到需要生成文件的路径,然后执行命令. # javadoc -encoding UTF-8 -charset UTF-8 文件名 javadoc -encoding U ...

  8. 【Python】Word文档操作

    依赖库下载: pip install python-docx -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip install docx2pdf -i ...

  9. 【Shiro】02 shiro.ini文件分析

    [什么是INI文件?] INI 全称:Initialization File 初始文件 Window系统文件扩展名 Shiro 使用时可以连接数据库,也可以不连接数据库. 当不使用数据库时,需要配置S ...

  10. 【转载】 NLP如此钟情英语研究真的好吗?

    转载自: https://mbd.baidu.com/newspage/data/landingsuper?context=%7B%22nid%22%3A%22news_965090611243366 ...