given a zip file with multiple nested directory structure, how do I unzip it into the same tree structure?

does ZipFile.entries() provide the enumeration in any order?

解决方案

Zip doesn't offer directory structure per se. The tree alike structure is built by having full path of each entry. ZipFile enumerates the entries in the same way they have been added to the file.

Note: java.util.ZipEntry.isDirectory() just tests if the last character of the name is '/', that's how it works.

What you need to extract the files into the same directory. Parse then name like that:

for(ZipEntry zipEntry : java.util.Collections.list(zipFile.entries())){//lazislav

String name = zipEntry.getName();

int idx = name.lastIndexOf('/');

if (idx>=0) name=name.substring(idx)

if (name.length()==0) continue;

File f = new File(targetDir, name);

}

That shall do it more or less (you still need to take care of duplicate file names, etc)

zipfile java 解压速率,使用java.util.ZipFile在同一层次中解压缩zipfile相关推荐

  1. java解压报错java.io.IOException: failed to skip current tar entry

    #java解压出现java.io.IOException: failed to skip current tar entry 当使用如下函数解压: AntBuilder antBuilder = ne ...

  2. java 解压到内存,Java GZip 基于内存实现压缩和解压的方法

    欢迎大家关注本博,同时欢迎大家评论交流,可以给个赞哦!!! GZip是常用的无损压缩算法实现,在Linux中较为常见,像我们在Linux安装软件时,基本都是.tar.gz格式..tar.gz格式文件需 ...

  3. java zip malformed_关于Java解压文件的一些坑及经验分享(MALFORMED异常)

    关于Java解压文件的一些坑及经验分享 就在本周, 测试人员找到我说现上的需求文档(zip格式的)无法预览了, 让我帮忙看看怎么回事. 这个功能也并不是我做的, 于是我便先看看线上日志有没有什么错误, ...

  4. java解压中文乱码_java解压文件中文乱码怎么处理

    上次利用java自动的java.util.zip.ZipEntry和??java.util.zip.ZipFile来解压zip文件,今天发现程序在读取解压文件时居然报了空指针异常,debug程序后发现 ...

  5. 解压后java文字乱码_怎么解决java解压zip包出现乱码

    怎么解决java解压zip包出现乱码 发布时间:2020-06-23 09:02:42 来源:亿速云 阅读:107 作者:Leah 怎么解决java解压zip包出现乱码?相信很多没有经验的人对此束手无 ...

  6. gz解压java,java 解压gz

    场景: java解压gz文件,这个是在linux下实验过的 下面是网上的代码 http://www.iteye.com/topic/894879 import java.io.FileInputStr ...

  7. Java解压文件Zip,War,Tar,TarGz格式

    Java压缩和解压缩 压缩和解压缩依赖 关于Java解压Zip文件的java.lang.IllegalArgumentException:MALFORMED报错问题. 解压缩代码 Zip解压缩 War ...

  8. java解压rar5 兼容rar4(改bug)

    本篇是为修改原作者bug,原作者:java解压rar5 兼容rar4_So straw?-CSDN博客 在我测试时发现bug,此方法 public int write(byte[] data) thr ...

  9. Java解压Jar文件

    今天写点java解压jar文件的东西,以前项目中用到过,很简单... java中有专门的文件类型对应jar文件,那就是JarFile,用于从任何可以使用java.io.RandomAccessFile ...

最新文章

  1. 用淘宝购买的win7 U盘系统给苹果笔记本Mac OS安装双系统
  2. 引用头文件#include queue出错
  3. ESX VMFS文件系统浏览及修复软件部分免费发布
  4. os_mbox.c(全)
  5. Raft 一致性算法论文译文
  6. 十年磨一剑 | 淘宝如何打造承载亿级流量的首页?
  7. 【codevs1477】【BZOJ2733】永无乡,Splay+启发式合并
  8. 保存时自动加分号_CAD自动保存文件扩展名是什么?如何快速恢复自动保存文件?...
  9. jsp中的四种对象作用域
  10. 接口测试——Jmeter直连数据库无法获取查找到的数据个数
  11. Android ImageView点击效果
  12. python 读取 pdf 文档
  13. linux生成可执行文件的过程
  14. 怎么把OFD文件转换成PDF文件?
  15. GRC: 个人信息保护法, 个人隐私, 企业风险合规治理
  16. win7 删除网络计算机,win7系统修改和删除网络图标的方法
  17. MySql 报错1548
  18. 巧妙去掉多余的安全删除硬件图标
  19. mac 修改idea 占用内容_Mac上如何调整PhpStorm和IntelliJ IDEA的占用内存大小
  20. fileinfo的作用以及如何开启fileinfo扩展

热门文章

  1. 分布式训练使用手册-paddle 数据并行
  2. UTF-8与UTF-8 BOM
  3. 如何在框架外部自定义C++ OP
  4. TensorRT原理图示
  5. CUDA运行时 Runtime(四)
  6. Thrift协议与传输选择
  7. CentOS7下启动Nginx出现Failed to start nginx.service:unit not found
  8. [JS][dp]题解 | #打家劫舍(一)#
  9. ajax发送动态字符传,如何发送ajax请求文件与其他字符串的变量?
  10. AndroidStudio git 提交代码,创建分支,合并分支,回滚版本,拉取代码