Android 解压zip文件(支持中文)
过了n多天后,当再次使用原先博客上写的那篇:
Android 压缩解压zip文件
去做zip包的解压的时候,出现了原来没有发现的很多问题。首先是中文汉字问题,使用java的zip包不能很好的解决解压问题;其次还有
getRealFileName()内的那个判断:
由之前的"if(dirs.length >1)" 如果是 >1 的话,对于一些文件不能够解压,修改为:
if(dirs.length>0) 对于zip压缩包内包含中文目录或者中文文件的话,参考网上的资源:
“使用apache的zip工具包(所在包为ant.jar )代替JDK的zip工具包,因为java类型自带的不支持中文路径,不过两者使用的方式是一样的,只是apache压缩工具多了设置编码方式的接口,其他基本上是一样的。” 如果android下想使用 apache 需要导入 ant.jar 这个包,下面附上下载链接:
http://download.csdn.net/detail/shizhending/4139787 对于android 工程添加 jar 包的方法也提供一下入口吧:
http://hi.baidu.com/yore2003/item/fb6d5cd21a4bec4dddf9bef2 上面讲到的添加 jar 要注意下最好是:
右键工程->properties->Java Build Path->Order and Export
然后把刚才加的 Libray jar 置顶。 下面是使用apache zip工具包的具体源码:
public static void unZipFile(String archive, String decompressDir)throws IOException, FileNotFoundException, ZipException
{
BufferedInputStream bi;
ZipFile zf = new ZipFile(archive, "GBK");
Enumeration e = zf.getEntries();
while (e.hasMoreElements())
{
ZipEntry ze2 = (ZipEntry) e.nextElement();
String entryName = ze2.getName();
String path = decompressDir + "/" + entryName;
if (ze2.isDirectory())
{
System.out.println("正在创建解压目录 - " + entryName);
File decompressDirFile = new File(path);
if (!decompressDirFile.exists())
{
decompressDirFile.mkdirs();
}
} else
{
System.out.println("正在创建解压文件 - " + entryName);
String fileDir = path.substring(0, path.lastIndexOf("/"));
File fileDirFile = new File(fileDir);
if (!fileDirFile.exists())
{
fileDirFile.mkdirs();
}
BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(decompressDir + "/" + entryName));
bi = new BufferedInputStream(zf.getInputStream(ze2));
byte[] readContent = new byte[1024];
int readCount = bi.read(readContent);
while (readCount != -1)
{
bos.write(readContent, 0, readCount);
readCount = bi.read(readContent);
}
bos.close();
}
}
zf.close();
//bIsUnzipFinsh = true;
}
同样记得要在AndroidManifest.xml里添加权限。
Android 解压zip文件(支持中文)的更多相关文章
- Android 解压zip文件
过了n多天后,当再次使用原先博客上写的那篇: Android 压缩解压zip文件 去做zip包的解压的时候,出现了原来没有发现的很多问题.首先是中文汉字问题,使用java的zip包不能很好的解决解压问 ...
- Android 解压zip文件你知道多少?
对于Android常用的压缩格式ZIP,你了解多少? Android的有两种解压ZIP的方法,你知道吗? ZipFile和ZipInputStream的解压效率,你对比过吗? 带着以上问题,现在就开始 ...
- JAVA压缩解压ZIP文件,中文乱码还需要ANT.JAR包
package zip; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStrea ...
- 通过javascript在网页端解压zip文件并查看压缩包内容
WEB前端解压ZIP压缩包 web前端解压zip文件有什么用: 只考虑标准浏览器的话, 服务器只要传输压缩包到客户端, 节约了带宽, 而且节约了传输时间, 听起来好像很厉害的说: 如果前端的代 ...
- java实现解压zip文件,(亲测可用)!!!!!!
项目结构: Util.java内容: package com.cfets.demo; import java.io.File; import java.io.FileOutputStream; imp ...
- Centos7解压Zip文件
一.安装支持ZIP的工具 yum install -y unzip zip 二.解压zip文件 unzip 文件名.zip 三.压缩一个zip文件 zip 文件名.zip 文件夹名称或文件名称
- (转载)C#压缩解压zip 文件
转载之: C#压缩解压zip 文件 - 大气象 - 博客园http://www.cnblogs.com/greatverve/archive/2011/12/27/csharp-zip.html C# ...
- python用zipfile模块打包文件或是目录、解压zip文件实例
#!/usr/bin/env python # -*- coding: utf-8 -*- from zipfile import * import zipfile #解压zip文件 def unzi ...
- AIX解压ZIP文件
AIX系统自身是没有解压ZIP文件的,但在AIX安装oracle数据库服务器的话,在$ORACLE_HOME/bin路径下方却有unzip命令,可以解压ZIP文件. 一.shell脚本 之前的版本 ...
随机推荐
- Pandas 0 数据结构Series
# -*- encoding:utf-8 -*- # Copyright (c) 2015 Shiye Inc. # All rights reserved. # # Author: ldq < ...
- C# 中传参中的OUT 和 ref 区别 笔记
//out传参前需要对参数进行赋值处理,ref则不需要.//out.ref 传参都可以对值进行改变 1 static void Main(string[] args) { ; //int J = 10 ...
- flagSet 使用
var ( flagSet = flag.NewFlagSet("main", flag.ExitOnError) // 参数定义 version = flagSet.Bool(& ...
- MySQL8主从配置
最近在看MySQL的主从配置,罗列一下过程. 一.环境介绍 我使用的是两个MySQL8.0.13Windows版,Master和Slave安装的在一个机器上,Master库的端口为3306,Slave ...
- kettle web化
kettle web化 通过Java API调用kettle核心代码,并基于Spring Boot提供简易的Web管理界面. 背景 在工作中,通过kettle这款ETL产品进行数据处理时,是通过kit ...
- php解析ini,conf文件
/** * 解析conf文件,类似ini文件 * @param string $strFileName 文件名 * @param boolean $boolParseVal 解析值为数组,多 * @a ...
- Java面经
转载:[Java面经]干货整理, Java面试题(覆盖Java基础,Java高级,JavaEE,数据库,设计模式等) 原文:http://www.cnblogs.com/wang-meng/p/5 ...
- docker exec 系统找不到指定的路径。
相关问题和答案 >docker exec -it a1 echo "hello..." > /var/www/html/index.html 系统找不到指定的路径. & ...
- Bulk API
承接上文,使用Java High Level REST Client操作elasticsearch Bulk API 高级客户端提供了批量处理器以协助批量请求 Bulk Request BulkReq ...
- Android图标
在线生成安卓App图标.IOS App图标 https://icon.wuruihong.com