/**
* 解压目标文件
* @param context
* @param destDirName 存放解压文件的目录名,默认路径为data/data/packagename/app_destDirName
* @param fileName
*/
public static void UnZipFile(Context context,String destDirName,String fileName) {
File zipfileDir = context.getDir(destDirName, Activity.MODE_PRIVATE);
InputStream stream = null;
ZipInputStream inZip = null;
try {
//将Assets文件夹下面的压缩包,转换成字节读取流
stream = context.getAssets().open(fileName);
//将字节读取流转成zip读取流
inZip = new ZipInputStream(stream);
//压缩文件实体
ZipEntry zipEntry;
//压缩文件实体中的文件名称
String szName = "";
while ((zipEntry = inZip.getNextEntry()) != null) {
szName = zipEntry.getName();
if (zipEntry.isDirectory()) {
//zipEntry是目录,则创建目录
szName = szName.substring(0, szName.length() - 1);
File folder = new File(zipfileDir, szName);
folder.mkdirs();
} else {
//否则创建文件,并输出文件的内容
File file = new File(zipfileDir, szName);
file.createNewFile();
FileOutputStream out = new FileOutputStream(file);
int len;
byte[] buffer = new byte[1024];
while ((len = inZip.read(buffer)) != -1) {
out.write(buffer, 0, len);
out.flush();
}
out.close();
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (inZip != null) {
try {
inZip.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
如何解压assets目录下的压缩包文件
最新推荐文章于 2024-07-01 13:50:34 发布