闲话少说,直接看工具类:
package com.ilucky.zip4j.util;
import java.io.File;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.util.Zip4jConstants;
/**
* @author IluckySi
* @since 20150723
*/
public class Zip4jUtil {
private String srcPath;
private String dstPath;
private String password = "123456";
public String getSrcPath() {
return srcPath;
}
public void setSrcPath(String srcPath) {
this.srcPath = srcPath;
}
public String getDstPath() {
return dstPath;
}
public void setDstPath(String dstPath) {
this.dstPath = dstPath;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
/**
* 加密
* 支持将某个文件或某个目录下所有的文件加密.
* 1.某个文件:D:\\test\\src.zip.
* 2某个目录:D:\\test\\src
* @return boolean
*/
public boolean encrypt() {
try {
if(!new File(srcPath).exists()) {
System.out.println("源路径不存在 "+srcPath);
return false;
}
ZipParameters parameters = new ZipParameters();
parameters.setEncryptFiles(true);
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
parameters.setPassword(password.toCharArray());
File srcFile = new File(srcPath);
ZipFile destFile = new ZipFile(dstPath);
if(srcFile.isDirectory()) {
destFile.addFolder(srcFile, parameters);
} else {
destFile.addFile(srcFile, parameters);
}
System.out.println("成功加密文件");
return true;
} catch (Exception e) {
System.out.println("加密文件发生异常:"+e);
return false;
}
}
/**
* 解密
* 支持将某个加密文件解压缩到某个指定目录下面.
* @return boolean
*/
public boolean decrypt() {
try {
if(!new File(srcPath).exists()) {
System.out.println("源路径不存在 "+srcPath);
return false;
}
ZipFile srcFile = new ZipFile(srcPath);
srcFile.setFileNameCharset("GBK");
srcFile.setPassword(password.toCharArray());
srcFile.extractAll(dstPath);
System.out.println("成功解密文件");
return true;
} catch (ZipException e) {
System.out.println("解密文件发生异常:"+e);
return false;
}
}
}
然后看测试类:
package com.ilucky.zip4j.util;
/**
* @author IluckySi
* @since 20150723
*/
public class MainTest {
public static void main(String[] args) {
//加密.
Zip4jUtil zip4jUtil = new Zip4jUtil();
zip4jUtil.setSrcPath("D:\\test\\src.zip");
zip4jUtil.setDstPath("D:\\test\\dst.zip");
zip4jUtil.setPassword("123");
zip4jUtil.encrypt();
//解密.
zip4jUtil.setSrcPath("D:\\test\\dst.zip");
zip4jUtil.setDstPath("D:\\test\\");
zip4jUtil.setPassword("123");
//zip4jUtil.decrypt();
}
}
最后看pom文件:
<dependency>
<groupId>net.lingala.zip4j</groupId>
<artifactId>zip4j</artifactId>
<version>1.3.2</version>
</dependency>
版权声明:本文为博主原创文章,未经博主允许不得转载。
时间: 2024-11-06 20:58:10