zipparameters 使用_zip4j的简单运用

zip4j的简单运用

有的时候项目需要压缩一些文件进行上传,或者从云端下载后进行解压,便需要ZipOutputStream,过程主要是新建一

个压缩文件,然后拷贝所有的文件,拷贝过程中添加新的文件进去,速度比较慢。

既然麻烦,那就可以用别人给的轮子,于是就发现了zip4j。

引入

net.lingala.zip4j

zip4j

2.2.1

或者

implementation "net.lingala.zip4j:zip4j:2.2.1"

压缩文件指定文件压缩

// 初始化一个压缩包,生成在储存卡根目录

String sdcard = Environment.getExternalStorageDirectory().getAbsolutePath();

ZipFile zipfile = new ZipFile(sdcard + "/a.zip");

ZipParameters parameters = new ZipParameters();

// 压缩方式

parameters.setCompressionMethod(CompressionMethod.STORE);

// 压缩级别

parameters.setCompressionLevel(CompressionLevel.FAST);

/* 单个文件,平常用不到的

* zipfile.addFile(new File("文件路径"), parameters);

*/

// 多个文件集合

zipfile.addFiles(Arrays.asList(

new File("文件1"),

new File("文件2"),

new File("文件3"))

, parameters);

压缩整个文件夹

// 初始化一个压缩包,生成在储存卡根目录

String sdcard = Environment.getExternalStorageDirectory().getAbsolutePath();

ZipFile zipfile = new ZipFile(sdcard + "/a.zip");

ZipParameters parameters = new ZipParameters();

// 压缩方式

parameters.setCompressionMethod(CompressionMethod.STORE);

// 压缩级别

parameters.setCompressionLevel(CompressionLevel.FAST);

// 添加

zipfile.addFolder(new File("文件夹路径"),parameters);

加密压缩

// 初始化一个压缩包,生成在储存卡根目录

String sdcard = Environment.getExternalStorageDirectory().getAbsolutePath();

ZipFile zipfile = new ZipFile(sdcard + "/a.zip", "密码".toCharArray());

ZipParameters parameters = new ZipParameters();

// 设置加密文件

parameters.setEncryptFiles(true);

// 设置加密方式

parameters.setEncryptionMethod(EncryptionMethod.AES);

// 可选 默认选择AES256

parameters.setAesKeyStrength(AesKeyStrength.KEY_STRENGTH_256);

// 压缩方式

parameters.setCompressionMethod(CompressionMethod.STORE);

// 压缩级别

parameters.setCompressionLevel(CompressionLevel.FAST);

// 添加

zipfile.addFolder(new File("文件夹路径"), parameters);

注释:

•压缩方式

- CompressionMethod.STORE 仅打包

- CompressionMethod.DEFLATE 默认

- CompressionMethod.AES_INTERNAL_ONLY 加密压缩

•压缩等级

- CompressionLevel.FASTEST 最快

- CompressionLevel.FAST 快速

- CompressionLevel.NORMAL 一般

- CompressionLevel.MAXIMUM 体积最大

•加密方式

- EncryptionMethod.NONE 不加密

- EncryptionMethod.ZIP_STANDARD

- EncryptionMethod.ZIP_STANDARD_VARIANT_STRONG

- EncryptionMethod.AES AES加密

解压压缩包(这个就没什么花里胡哨的了)

// 检查压缩包是否被加密

new ZipFile("encrypted_zip_file.zip").isEncrypted();

// 把filename.zip全部解压到指定目录(不带密码)

new ZipFile("filename.zip").extractAll("/destination_directory");

// 带密码

new ZipFile("filename.zip", "password".toCharArray()).extractAll("/destination_directory");

// 解压指定文件

new ZipFile("filename.zip").extractFile("fileNameInZip.txt", "/destination_directory");

new ZipFile("filename.zip", "password".toCharArray()).extractFile("fileNameInZip.txt", "/destination_directory");

// 将文件解压到指定目录并重命名

new ZipFile("filename.zip", "password".toCharArray()).extractFile("fileNameInZip.txt", "/destination_directory", "newfileName.txt");

删除压缩包内指定文件(并不能删除文件夹)

new ZipFile("filename.zip").removeFile("fileNameInZipToRemove");

其他更多的可以翻阅Github项目获得更多方法,这里就不多说了

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值