public void parseAndAdd(MultipartFile zipFile) {//C:\Users\登录用户~1\AppData\Local\Temp\String pathName = System.getProperty("java.io.tmpdir") + "shpFileCache/";String dec = System.getProperty("java.io.tmpdir") + "shpFileCache/";File file = new File(pathName);//如果文件夹不存在  创建文件夹if (!file.exists()) {file.mkdir();}//获取文件名(包括后缀)String pname = zipFile.getOriginalFilename();pathName = pathName + UUID.randomUUID().toString().replaceAll("-", "") + "-" + pname;try {File dest = new File(pathName);zipFile.transferTo(dest);// 获取解压出来的文件名 不带后缀  List<String> fileNames = ZipUtil.unZip(dest, dec);//解析完成   删除本次解析中生成的文件  删除此目录下的所有文件//ZipUtil.deleteFile(dec);} catch (Exception e) {e.printStackTrace();}}

ZipUtil


import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;/*** @author lww* @Description 文件解压相关工具类* @date 2021/7/22 11:19*/
public class ZipUtil {/*** zip解压** @param srcFile     zip源文件* @param destDirPath 解压后的目标文件夹* @throws RuntimeException 解压失败会抛出运行时异常*/public static List<String> unZip(File srcFile, String destDirPath) throws RuntimeException {//记录解压出来的所有文件名List<String> filesName = new ArrayList<>();long start = System.currentTimeMillis();// 判断源文件是否存在if (!srcFile.exists()) {throw new RuntimeException(srcFile.getPath() + "所指文件不存在");}// 开始解压ZipFile zipFile = null;try {zipFile = new ZipFile(srcFile, Charset.forName("GBK"));Enumeration<?> entries = zipFile.entries();while (entries.hasMoreElements()) {ZipEntry entry = (ZipEntry) entries.nextElement();//添加进filesNamefilesName.add(entry.getName());System.out.println("解压文件:" + entry.getName());// 如果是文件夹,就创建个文件夹if (entry.isDirectory()) {String dirPath = destDirPath + "/" + entry.getName();File dir = new File(dirPath);dir.mkdirs();} else {// 如果是文件,就先创建一个文件,然后用io流把内容copy过去File targetFile = new File(destDirPath + "/" + entry.getName());// 保证这个文件的父文件夹必须要存在if (!targetFile.getParentFile().exists()) {targetFile.getParentFile().mkdirs();}targetFile.createNewFile();// 将压缩文件内容写入到这个文件中InputStream is = zipFile.getInputStream(entry);FileOutputStream fos = new FileOutputStream(targetFile);int len;byte[] buf = new byte[1024];while ((len = is.read(buf)) != -1) {fos.write(buf, 0, len);}// 关流顺序,先打开的后关闭fos.close();is.close();}}long end = System.currentTimeMillis();System.out.println("解压完成,耗时:" + (end - start) + " ms");} catch (Exception e) {throw new RuntimeException("unzip error from ZipUtils", e);} finally {if (zipFile != null) {try {zipFile.close();} catch (IOException e) {e.printStackTrace();}}}return filesName;}/*** 删除文件** @param filePath* @return*/public static boolean deleteFile(String filePath) {boolean flag = false;File file = new File(filePath);if (!file.exists()) {return flag;}if (!file.isDirectory()) {return flag;}String[] tempList = file.list();File temp;for (int i = 0; i < tempList.length; i++) {if (filePath.endsWith(File.separator)) {temp = new File(filePath + tempList[i]);} else {temp = new File(filePath + File.separator + tempList[i]);}if (temp.isFile()) {temp.delete();}if (temp.isDirectory()) {// 先删除文件夹里面的文件deleteFile(filePath + "/" + tempList[i]);// 再删除空文件夹deleteFile(filePath + "/" + tempList[i]);flag = true;}}return flag;}}

java 上传zip压缩文件并且解压相关推荐

  1. Zip压缩文件没有解压密码怎么办?

    Zip压缩文件没有解压密码怎么办? 在平时,我们难免的需要到浏览器上面寻找一些需要的资源,可往往下载好了zip文件后,解压时却需要密码.真的让人很痛苦.那有没有什么办法可以破解zip解压时需要的密码呢 ...

  2. java解压zip_Java实现zip压缩文件的解压

    需求描述: 前段时间写了一篇博客<Java实现对文本文件MD5加密并ftp传送到远程主机目录>,实现了一部分的业务需求.然而有些业务可能不止传送一个文件,有时候客户需要传多个文件,原有系统 ...

  3. Cocos2dx-Lua 使用Curl下载zip压缩文件并解压

    因为工作上的需求要用到异步下载文件并解压使用,在网上找了一部分资料,发现好多都是零碎的,所以我在这里做个整合.(51开源时代) 首先还是要感谢 @iuoon 大佬提供的CurlDown源码和 @zsi ...

  4. Android--下载zip压缩文件并解压

    网上有很多介绍下载文件或者解压zip文件的文章,但是两者结合的不多,在此记录一下下载zip文件并直接解压的方法,直接上代码. 源码下载:http://download.csdn.net/detail/ ...

  5. 最近很火的在线文件预览txt、doc、ppt、pdf、excel、jpg、png、zip、tar.gz等各种文件及压缩文件在线解压和预览,包括前后端设计和源码,编写搜索引擎多关键词检索名称和内容(四)

    最近很火的在线文件预览txt.doc.ppt.pdf.excel.jpg.mp4.png.zip.tar.gz等各种文件及压缩文件在线解压和预览,包括前后端设计和源码,编写一个文件搜索引擎实现多关键词 ...

  6. 最近很火的在线文件预览txt、doc、ppt、pdf、excel、jpg、png、zip、tar.gz等各种文件及压缩文件在线解压和预览,包括前后端设计和源码,编写搜索引擎多关键词检索名称和内容(五)

    最近很火的在线文件预览txt.doc.ppt.pdf.excel.jpg.mp4.png.zip.tar.gz等各种文件及压缩文件在线解压和预览,包括前后端设计和源码,编写一个文件搜索引擎实现多关键词 ...

  7. JAVA上传tiff格式文件

    文章目录 Java上传tiff格式文件 Java上传tiff格式文件 加入pom依赖 <dependency><groupId>com.twelvemonkeys.imagei ...

  8. linux下tar gz bz2 tgz z等众多压缩文件的解压方法

    对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕.别个不说,单单就压缩文件为例,我们知道在Windows下最常见 的压缩文件就只有两种,一是,zip,另一个是.rar. ...

  9. linux解压文件卡住,Linux系统下常见的压缩文件及解压方法

    如果tar不支持j这个参数就先用 bzip2 -d xxx.tar.bz2 把它解压成.tar文件,然后再用 tar xvf xxx.tar 拆包. 压缩解压 linux下怎么解后缀名是gzip的文件 ...

最新文章

  1. python100以内自然数之和_python—100以内素数之和 python123
  2. 面试题:接口和抽象类的区别
  3. 类和对象—对象特性—拷贝构造函数调用时期
  4. 机器学习之正则化图文讲解
  5. linux登oracle登陆不了,oracle: linux服务器本机不能登陆的解决
  6. P4494-[HAOI2018]反色游戏【圆方树】
  7. 链表递增输出并释放空间
  8. SAP License:段的含义
  9. TFC2017 腾讯Web前端大会参会小结
  10. Spring Boot_打造企业级微信点餐系统_汇总贴
  11. c语言判断二叉树是不是二叉排序树_判断
  12. LaTex 符号大全
  13. 最简单的进制转换(三张图片搞定)
  14. Android ViewPager实现3D画廊效果
  15. IIC总线原理详细解析
  16. HL7 2.6解析转XML(C#版)
  17. Windows rundll32的用法-脚本命令管理打印机
  18. 如何取消坚果云的分享链接
  19. java实现支付宝扫码支付详细步骤
  20. 智力题:36匹马,6条跑道,没有计时器,至少需要多少次选出最快的三匹马

热门文章

  1. jdk官网_jdk官网下载教程
  2. R语言—90分钟从入门到精通
  3. 空气净化器什么牌子好,家用空气净化器哪个牌子好推荐
  4. Spring MVC 双亲上下文的说明
  5. 解决GD32F105休眠后无法唤醒的问题
  6. 小米的性价比之路为何走不通了?
  7. 微博官方API使用方法【全流程教学】
  8. 硬核,学习 Java 的一点小建议(思维导图,建议收藏)!
  9. python自动化测试面试题代码_Python自动化测试面试题-编程篇
  10. 鸡嗉囊炎有哪些症状 什么药防治鸡嗉囊肿大