目录

一、AndroidManifest.xml 添加 sd 卡读写权限

二、具体使用方法

注记:


我们需要同时下载多个文件时,一般是使用压缩包来实现。

一、AndroidManifest.xml 添加 sd 卡读写权限

 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>

二、具体使用方法

/*** @param zipFile zip压缩包路径* @param folderPath 解压文件存放路径*/public void unzipFile(String zipFile, String folderPath) {try {ZipFile zfile = null;// 转码为GBK格式,支持中文zfile = new ZipFile(zipFile);Enumeration zList = zfile.entries();ZipEntry ze = null;byte[] buf = new byte[1024 * 1024];while (zList.hasMoreElements()) {ze = (ZipEntry) zList.nextElement();// 列举的压缩文件里面的各个文件,判断是否为目录if (ze.isDirectory()) {String dirstr = folderPath + ze.getName();dirstr.trim();File f = new File(dirstr);f.mkdir();continue;}OutputStream os = null;FileOutputStream fos = null;// ze.getName()会返回 script/start.script这样的,是为了返回实体的FileFile realFile = getRealFileName(folderPath, ze.getName());fos = new FileOutputStream(realFile);os = new BufferedOutputStream(fos);InputStream is = null;is = new BufferedInputStream(zfile.getInputStream(ze));int readLen = 0;// 进行一些内容复制操作while ((readLen = is.read(buf, 0, 1024)) != -1) {os.write(buf, 0, readLen);}is.close();os.close();}zfile.close();//解压完成后,删除压缩包文件(此处根据需要可进行删除)File file = new File(zipFile);file.delete();Toast.makeText(MyActivity.this, "解压成功!", Toast.LENGTH_LONG).show();} catch (Exception e) {e.printStackTrace();Toast.makeText(MyActivity.this, "解压失败!", Toast.LENGTH_LONG).show();}}

此方法亲测可以解压多级目录的压缩包,但是也有一个问题。压缩包内的空文件夹,解压之后的该文件就不存在了(该bug在我当前使用的项目中无影响,暂未修改)。

注记:

压缩包内的空文件在解压后不存在的修改思路:

Enumeration zList = zfile.entries();
ZipEntry ze = (ZipEntry) zList.nextElement();

当 ze.getSize() 不在大于 0 时,此时就是空文件夹,使用 ze.getName() 可获取空文件夹名,然后我们再去相应的路径下去创建它就OK了。

Android 解压zip压缩包 (压缩包内有多级目录)相关推荐

  1. 【解压zip.00**压缩包】

    [解压zip.00**压缩包] 1 解压 .zip.001 .zip.002 .zip.003 1.1 方法一[网上的方法,亲测未成功] 1.2 方法二[win11系统下,亲测成功] 2 解压 *** ...

  2. Android 解压zip文件

    过了n多天后,当再次使用原先博客上写的那篇: Android 压缩解压zip文件 去做zip包的解压的时候,出现了原来没有发现的很多问题.首先是中文汉字问题,使用java的zip包不能很好的解决解压问 ...

  3. Android 解压 Zip 压缩文件

    文章目录 1.简介 2.代码结构 3.AndroidManifest.xml 添加 sd 卡读写权限 4.MainActivity 文件 5.效果查看 1.简介 Android 解压 SD卡 里的 z ...

  4. Android解压zip rar 7z文件

    添加依赖 implementation 'org.apache.commons:commons-compress:1.23.0' implementation 'com.github.junrar:j ...

  5. Android 解压zip文件你知道多少?

    对于Android常用的压缩格式ZIP,你了解多少? Android的有两种解压ZIP的方法,你知道吗? ZipFile和ZipInputStream的解压效率,你对比过吗? 带着以上问题,现在就开始 ...

  6. 安卓UI图分离器(支持ios@2x3x图转成安卓xhdpi,xxhdpi图,最新支持拖入并自动解压.zip图片压缩包)

    如果UI是个ios粉的话,可能给的切图可能只会给ios分类,而不会给安卓分类,这样安卓用图片资源的话就苦逼了,,,如下图... 人生苦啊... 思来想去,这种搬砖的活应该交给程序来做,于是花了点时间写 ...

  7. 微信小程序文件下载及在线打开指定文档,解压Zip格式压缩包

    1.微信小程序文件下载 wx.downloadFile({url:'https://www.baidu.com/test', //(仅为示例接口,注:这里的域名需要到小程序公众平台添加)filePat ...

  8. 使用Java解压zip格式压缩包

    Maven引用 使用了apache的 ZipArchiveEntry 和 FileUtils ,具体的maven引用如下(版本按需指定) <!-- https://mvnrepository.c ...

  9. Android 解压 Zip 压缩文件

    一.AndroidManifest.xml 添加 sd 卡读写权限 <uses-permission android:name="android.permission.WRITE_EX ...

最新文章

  1. haskell读写文件相关(含二进制)
  2. Spring与Hibernate整合中,使用OpenSessionInViewFilter后出现sessionFactory未注入问题
  3. 赛灵思推7nm加速平台:面向所有场景、所有开放者,AI推理性能提升8倍
  4. 走出海量数据及访问量压力困境
  5. 动易html编辑器,解决动易后台编辑器(混合模式,编织模式不可用变灰
  6. 计算机组成原理实验报告 实验五 三人表决电路实验
  7. java 阿拉伯数字日期转换为中文大写日期方法_日期转换为中文大写数字
  8. win10如何共享计算机网络打印机,win10如何共享打印机给其它电脑,Win10设置打印机共享操作步骤...
  9. 如何通过vin及发动机号查询车辆出险、理赔、事故记录
  10. XPS文件怎么打开?可以转成PDF格式吗?
  11. 如何在 WordPress 中启用WebP 图片?webp有什么优势?
  12. java文件上传后台
  13. 京东JD App签名/加密算法研究
  14. 简单通俗易懂 汽车入门知识图解大集合
  15. 335x系列平台-ADC接口配置和最大采样速率
  16. IDEA自定义模板:快速指定一个数据库映射字段(驼峰生成下划线命名)
  17. Python | 人脸识别系统 — 活体检测
  18. 确定性网络:从“尽力而为”到“确定承诺”
  19. 计算机机房空调原理,图解机房空调原理
  20. Python实现ALO蚁狮优化算法优化支持向量机分类模型(SVC算法)项目实战

热门文章

  1. 关于获取微信小程序码的“47001”错误码的坑
  2. python爬取考研成绩什么时候出来_Python 爬取揭秘,你的考研调剂对手就有谁?...
  3. web网页设计期末课程大作业 基于HTML+CSS仿苹果商城电商项目的设计与实现
  4. lvds接口屏线安装图解_lvds液晶屏幕接口详细讲解
  5. jsp的文件操作(二)
  6. 鸟哥的linux私房菜一书
  7. 原生JS鼠标移动拖尾效果
  8. Ue4制作鼠标拖尾效果
  9. CCNP路由实验之十一 IPv6 (8月5号账号被盗,乱发博文深表抱歉,感谢客服帮忙取回密码)
  10. pwnable.kr第七八题 input leg