为什么80%的码农都做不了架构师?>>>   

note: 如果目录中含有中文名称, 要用substr = new String(substr.getBytes("8859_1"), "GB2312");这样的语句转换,否则为乱码

/*** 解压缩功能.* 将ZIP_FILENAME文件解压到ZIP_DIR目录下.* @throws Exception*/public int upZipFile(File zipFile, String folderPath)throws ZipException,IOException {//public static void upZipFile() throws Exception{ZipFile zfile=new ZipFile(zipFile);Enumeration zList=zfile.entries();ZipEntry ze=null;byte[] buf=new byte[1024];while(zList.hasMoreElements()){ze=(ZipEntry)zList.nextElement();if(ze.isDirectory()){Log.d("upZipFile", "ze.getName() = "+ze.getName());String dirstr = folderPath + ze.getName();//dirstr.trim();dirstr = new String(dirstr.getBytes("8859_1"), "GB2312");Log.d("upZipFile", "str = "+dirstr);File f=new File(dirstr);f.mkdir();continue;}Log.d("upZipFile", "ze.getName() = "+ze.getName());OutputStream os=new BufferedOutputStream(new FileOutputStream(getRealFileName(folderPath, ze.getName())));InputStream 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();return 0;}/*** 给定根目录,返回一个相对路径所对应的实际文件名.* @param baseDir 指定根目录* @param absFileName 相对路径名,来自于ZipEntry中的name* @return java.io.File 实际的文件*/public static File getRealFileName(String baseDir, String absFileName){String[] dirs=absFileName.split("/");File ret=new File(baseDir);String substr = null;if(dirs.length>1){for (int i = 0; i < dirs.length-1;i++) {substr = dirs[i];try {//substr.trim();substr = new String(substr.getBytes("8859_1"), "GB2312");} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}ret=new File(ret, substr);}Log.d("upZipFile", "1ret = "+ret);if(!ret.exists())ret.mkdirs();substr = dirs[dirs.length-1];try {//substr.trim();substr = new String(substr.getBytes("8859_1"), "GB2312");Log.d("upZipFile", "substr = "+substr);} catch (UnsupportedEncodingException e) {// TODO Auto-generated catch blocke.printStackTrace();}ret=new File(ret, substr);Log.d("upZipFile", "2ret = "+ret);return ret;}return ret;}

转载于:https://my.oschina.net/wyyew/blog/40652

android zip解压缩(含有子目录)相关推荐

  1. android zip解压缩

    android  zip解压缩 public class ZipUtils {public ZipUtils() {} /* 以输入流的形式解压 */public static void UnZipF ...

  2. Android Zip解压缩类处理中文名乱码

    写在前面: 最近在做epub格式的解析, 采用的是java.util.zipFile类,发现这个实体类 对中文支持不是很好.换了Ant包.结果编译体积就大了很多. 目前正在想办法解决. 目前Andro ...

  3. android zip格式应用,Android 压缩解压zip文件

    Android 压缩解压zip文件 上次写了个解压缩功能,但有局限性,比如压缩文件xx.zip 里包括子目录的情况下,执行上次解压缩的功能就不能实现我们想要的效果,于是在网上参考了一下java的解压缩 ...

  4. android 正则表达式3,含有至少3个字符类型的android正则表达式

    我想在包含至少3个类型的字符从这种类型的android正则表达式:含有至少3个字符类型的android正则表达式 Number, upper letter, lower letter and spec ...

  5. java 压缩技术_Java压缩技术(三) ZIP解压缩——Java原生实现

    JavaEye的朋友跟我说:"你一口气把ZIP压缩和解压缩都写到一个帖子里,我看起来很累,不如分开好阅读".ok,面向读者需求,我做调整,这里单说ZIP解压缩! 相关链接: Jav ...

  6. Java压缩技术(三) ZIP解压缩——Java原生实现

    转载自   Java压缩技术(三) ZIP解压缩--Java原生实现 解压缩与压缩运作方式相反,原理大抵相同,由ZipInputStream通过read方法对数据解压,同时需要通过CheckedInp ...

  7. android 生成泛型对象,java android解析多层含有泛型对象的json数据获取不到泛型类型解析失败解决办法...

    ####问题描述 * java 解析多层含有泛型对象的json数据获取不到泛型类型 * 如果将泛型改成实际的类型就能正常解析 * 如果不改成实际的类型泛型数据被解析成com.google.gson.i ...

  8. Mac 解压zip文件错误:无法将*.zip解压缩到 (错误 1-操作不被允许)

    错误提示: 无法将"*.zip"解压缩到"" (错误 1-操作不被允许)或者 解压缩失败 英文提示: "Unable to unarchive int ...

  9. mac无法将xxx.zip解压缩到下载(错误 - 无此文件或目录)

    文件过大时,mac 无法将xxx.zip解压缩到下载(错误 - 无此文件或目录) 此时可以修改zip后缀为rar, 使用Unarchiver解压.

最新文章

  1. 手写实现李航《统计学习方法》书中全部算法
  2. (转) Twisted :第十八部分 Deferreds 全貌
  3. 做好十足准备面字节跳动,五面都过了,HR告诉我这个原因我被刷了...
  4. 如何轻松在线观看CNCC丨重启线上门票
  5. 块状元素、内联元素(又叫行内元素)和内联块状元素
  6. Linux 与 硬件 —— 各个硬件设备在Linux中的文件名
  7. hibernate mysql分页_求struts+hibernate实现mysql分页的详细代码
  8. linux操作系统cp命令
  9. 从头到尾彻底理解傅里叶变换算法(下)
  10. 民生付 php,“民生付”升级我省电商支付体验
  11. Mac在命令行中打开Finder
  12. js控制文件拖拽,获取拖拽内容。
  13. tablepc是什么平板电脑_平板电脑 Tablet PC
  14. 购物网站流程图(收藏)
  15. oracle与用友的差别,用友U9 PK SAP/Oracle:敢比就是赢
  16. HyperLynx(十)BoardSim和PCB板级仿真分析(一)
  17. fastjson解析多层对象中的属性
  18. 厉害!「标题党」文章都能用 Python 分析出来
  19. NASA Ames Stereo Pipelin(ASP)软件学习过程(一)
  20. 中国光纤通信技术现状和未来,如何发展好这个行业?

热门文章

  1. 关于text段、data段和bss段
  2. java 实体类包含list 怎么取值_2019 最新 500 道 Java 面试题
  3. mysql中如何设置过滤器_mysql 如何动态修改复制过滤器
  4. 64位游戏找call_《使命召唤16:战区》配置注册登录全攻略,三步让你极迅游戏!...
  5. 登录文档服务器,服务器登录login
  6. kali扫描内网ip_来,我们聊聊内网渗透!
  7. Java项目:图书管理系统(java+swing+Gui+Mysql)
  8. python中意外缩进是什么意思_Python 的缩进是不是反人类的设计?
  9. 戴尔电脑管家_2020年笔记本电脑推荐指南:笔记本电脑应该怎么选?什么牌子的笔记本电脑更值得入手?...
  10. 基本数据结构(图: 基本结构,DFS,prim算法, kruskal算法)