zoukankan      html  css  js  c++  java
  • 递归获取zip中的文件

     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工具包。

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

  • 相关阅读:
    JS打印代码示例
    javascript图片360°旋转
    动态载入/删除/更新外部 JavaScript/Css 文件
    AviSynth入门与应用指南
    汇编64讲(搞免杀、破解必看)在线观看
    C#模拟登录总结
    同时使用apache和IIS,共用80端口的一个解决方案
    Dos命令集合
    批处理for命令详解
    JavaScript定义类的几种方式
  • 原文地址:https://www.cnblogs.com/xuqiang7/p/14750139.html
Copyright © 2011-2022 走看看