一、背景

常我们再开发过程中,无论是Android 客户端程序还是桌面程序,有可能涉及到文件的上传和下载,多文件时通常做zip压缩处理,将多个文件压缩为一个zip包,方便传输,另外,客户端内也可能会涉及到一些资源的下载,这些资源通常都以zip的方式存放在服务器上,客户端可以在合适的时候将zip文件下载,然后解压资源。下面了解一下使用Zip4j框架来压缩和解压处理文件。

二、Zip4j框架

官网:http://www.lingala.net/zip4j/index.php

三、使用方式

public class ZipUtil {/*** 对文件列表压缩加密* @param srcfile* @param destZipFile* @param password* @return*/public static File doZipFilesWithPassword(File[] srcfile, String destZipFile, String password) {if (srcfile == null || srcfile.length == 0) {return null;}ZipParameters parameters = new ZipParameters();// 压缩方式parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);// 压缩级别parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);// 加密方式if (!TextUtils.isEmpty(password)) {parameters.setEncryptFiles(true);parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);parameters.setPassword(password);}ArrayList<File> existFileList = new ArrayList<File>();for (int i = 0; i < srcfile.length; i++) {if (srcfile[i] != null) {existFileList.add(srcfile[i]);}}try {ZipFile zipFile = new ZipFile(destZipFile);zipFile.addFiles(existFileList, parameters);return zipFile.getFile();} catch (ZipException e) {e.printStackTrace();return null;}}/*** 对文件夹加密* @param folder* @param destZipFile* @param password* @return*/public static File doZipFilesWithPassword(File folder, String destZipFile, String password) {if (!folder.exists()) {return null;}ZipParameters parameters = new ZipParameters();// 压缩方式parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);// 压缩级别parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);// 加密方式if (!TextUtils.isEmpty(password)) {parameters.setEncryptFiles(true);//parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);parameters.setPassword(password);}try {ZipFile zipFile = new ZipFile(destZipFile);zipFile.addFolder(folder, parameters);return zipFile.getFile();} catch (ZipException e) {e.printStackTrace();return null;}}/*** 单文件压缩并加密* @param file 要压缩的zip文件* @param destZipFile zip保存路径* @param password 密码   可以为null* @return*/public static File doZipSingleFileWithPassword(File file, String destZipFile, String password) {if (!file.exists()) {return null;}ZipParameters parameters = new ZipParameters();// 压缩方式parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);// 压缩级别parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);// 加密方式if (!TextUtils.isEmpty(password)) {parameters.setEncryptFiles(true);//parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);parameters.setPassword(password);}try {ZipFile zipFile = new ZipFile(destZipFile);zipFile.addFile(file,parameters);return zipFile.getFile();} catch (ZipException e) {e.printStackTrace();return null;}}/***  解压文件*  File:目标zip文件*  password:密码,如果没有可以传null*  path:解压到的目录路径*/public static boolean unZip(File file,String password,String path) {boolean res = false;try {ZipFile zipFile = new ZipFile(file);if (zipFile.isEncrypted()) { if(password != null && !password.isEmpty()) {zipFile.setPassword(password);  }}  zipFile.extractAll(path);res = true;} catch (ZipException e) {// TODO Auto-generated catch blocke.printStackTrace();}  return res;}}

Android 加密压缩文件相关推荐

  1. Python 创建加密压缩文件

    Python 创建加密压缩文件 1. 配置ZLib http://www.winimage.com/zLibDll/minizip.html 下载之后将 zlibwapi.dll 放在 demo/目录 ...

  2. python 批量加密压缩文件

    python 批量加密压缩文件 0x01 解决的问题 0x02 遇到的问题 0x03 代码 0x01 解决的问题 当有大批的文件,并且存放在不同的文件夹中,需要你进行加密压缩时,可参照此代码: 在代码 ...

  3. Android 加密之文件加密(FBE)

    一:加密简介: 加密是使用对称加密密钥对 Android 设备上的所有用户数据进行编码的过程.设备经过加密后,所有由用户创建的数据在存入磁盘之前都会自动加密,并且所有读取操作都会在将数据返回给调用进程 ...

  4. 安卓加密软件_软件 | 加密压缩文件暴力快速查看,安卓手机适用

    朋友们常常下载文件后需要解压缩,然而解压缩通常要密码,运气好密码就是压缩文件的名字,或者都能在下载的时候能在下载网址中找到,运气不好,就麻烦了,很想要的资源文件就因为没有密码就那么无法查看了. 当然一 ...

  5. linux加密压缩文件命令,linux 系统下 zip 的加密压缩与解压缩命令

    1.加密压缩 [[email protected] shine]# zip -rP king java.zip java adding: java/ (stored 0%) adding: java/ ...

  6. 在OSX中制作加密压缩文件

    1.打开Terminal 2.cd到指定目录 3-1.文件加密 zip -e xxx.zip(压缩后文件名) xxx.xxx(文件名) 3-2.文件夹加密 zip -er xxx.zip(压缩后文件名 ...

  7. Linux kali系统使用fcrackzip/rarcrack破解zip/rar(或者zip 7z)类型的加密压缩文件

    一. fcrackzip工具 1.首先得有有zip加密的文档 zip -P 12345  demozip.zip 2再使用fcrackzip工具 密码就出来了 3.也可以指定字典来进行查找,字典可以是 ...

  8. php压缩包 加密,php加密压缩文件

    前言 近几日,用爬虫采集的了一些数据,存放到硬盘中,随着数据量越来越多,所以想上传到网盘当中,可是不加下密又觉得不放心, 所以开始用PHP的zip模块进行压缩加密. 开始 $zipArc = new ...

  9. Mac - 加密压缩文件(免费)

    1.打开终端 2.键入 cd desktop 让终端控制桌面 3.键入 zip -er [压缩后文件名].zip [源文件(含后缀名)]命令 4.执行压缩命令,输入加密密码,确认加密密码 5桌面出现压 ...

最新文章

  1. java从磁盘读取图片_java 怎样从磁盘读取图片文件
  2. 学习笔记(八)——jQuery(二)
  3. vb 变量赋值为当前选定单元格_第7篇:根据Excel选定行对Word模板填充数据(补充修改)...
  4. 台湾ML笔记--1.2 formalize the learning probelm
  5. java 正则 小数_详解Java判断是否是整数,小数或实数的正则表达式
  6. java输出二进制数_Java打印整数的二进制表示(代码与解析)
  7. 用SqlBulkCopy批量安插数据时提示来自数据源的 String 类型的给定值不能转换为指定目标列的类型 int...
  8. 命令执行漏洞-命令执行-漏洞位点- 代码注入-漏洞利用-联合执行-Bypass(空格,关键字过滤,变量绕过)-例题两道-actf2020exec-GXYCTF2019 Ping Ping Ping
  9. 怎样用计算机记账,仓管员怎么用电脑记账?简单实用的电脑操作方式一览!
  10. linux全过程图解图片,安装 Mandriva Linux全过程《图解》
  11. Transformer靠什么得以闯入CV界秒杀CNN?
  12. 大数据技术常用的工具有哪些
  13. 什么是集群负载均衡与高可用(有图详解)
  14. 电阻中联分压电路的计算
  15. μCOS-Ⅱ操作系统中的PEND(阻塞zuse)和SUSPEND(挂起)和SLEEP(睡眠)三种状态
  16. 管理员必须知道的RADIUS认证服务器的部署成本
  17. 分段概率密度矩估计_2017年考研《数学一》大纲
  18. [题解]CodeForces1208G Polygons
  19. 专访最强夫妻店:“神庙逃亡2”开发背后的故事
  20. 被领导嘉奖了,该不该请同事吃饭?

热门文章

  1. 三大c4d人物角色模型素材网站 实用 精选
  2. JAVA信息管理系统毕业设计 开题报告
  3. 写给大家看的机器学习书【Part3】直观易懂的感知机学习算法PLA
  4. 用户与计算机通信的界面是什么意思,GUI是什么意思
  5. VSCode下的51单片机开发环境搭建
  6. 怎么删除计算机的打印机设备,win7系统的打印机删除不掉怎么办?完美解决方法看这里!...
  7. matlab提取wind底层数据库操作
  8. 漫谈程序猿系列:怎么告别“混日子”
  9. 数据库作业 1:绘制crow‘s foot图
  10. WampServer最新版一键安装