如何解压assets目录下的压缩包文件

/**
     * 解压目标文件
     * @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目录下的压缩包文件)