package hrhx.dhm.zip4j.util;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.FileHeader;
import net.lingala.zip4j.model.ZipParameters;
import net.lingala.zip4j.util.Zip4jConstants;
public class Zip4jUtil {
/**
* 压缩文件
* @param fileToAdd 文件压缩路径
* @param files 被压缩的文件路径
* @throws ZipException
*/
public static void zipFile(String fileToAdd,String files[]) throws ZipException{
//文件压缩路径
ZipFile zipFile = new ZipFile(fileToAdd);
//被压缩的文件路径
ArrayList<File> filesToAdd = new ArrayList<File>();
for(String f:files){
filesToAdd.add(new File(f));
}
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
zipFile.addFiles(filesToAdd, parameters);
}
/**
* 压缩文件-加密
* @param fileToAdd 文件压缩路径
* @param files 被压缩的文件路径
* @param password 密码
* @throws ZipException
*/
public static void zipFile(String fileToAdd,String files[],String password) throws ZipException{
//文件压缩路径
ZipFile zipFile = new ZipFile(fileToAdd);
//被压缩的文件路径
ArrayList<File> filesToAdd = new ArrayList<File>();
for(String f:files){
filesToAdd.add(new File(f));
}
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
// Set password
parameters.setEncryptFiles(true);
//--标准
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);
//--AES
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
parameters.setPassword(password);
zipFile.addFiles(filesToAdd, parameters);
}
/**
* 压缩文件夹
* @param folderToAdd
* @param dirs
* @throws ZipException
*/
public static void zipDir(String folderToAdd,String dirs) throws ZipException{
ZipFile zipFile = new ZipFile(folderToAdd);
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
zipFile.addFolder(dirs, parameters);
}
/**
* 压缩文件夹-加密
* @param folderToAdd
* @param dirs
* @throws ZipException
*/
public static void zipDir(String folderToAdd,String dirs,String password) throws ZipException{
ZipFile zipFile = new ZipFile(folderToAdd);
ZipParameters parameters = new ZipParameters();
parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
// Set password
parameters.setEncryptFiles(true);
//--标准
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_STANDARD);
//--AES
parameters.setEncryptionMethod(Zip4jConstants.ENC_METHOD_AES);
parameters.setAesKeyStrength(Zip4jConstants.AES_STRENGTH_256);
parameters.setPassword(password);
zipFile.addFolder(dirs, parameters);
}
/**
* 压缩文件列表
* @param folderToAdd
* @throws ZipException
*/
@SuppressWarnings("unchecked")
public static void zipShowList(String folderToAdd) throws ZipException{
ZipFile zipFile = new ZipFile(folderToAdd);
List<FileHeader> fileHeaderList = zipFile.getFileHeaders();
for (int i = 0; i < fileHeaderList.size(); i++) {
FileHeader fileHeader = (FileHeader)fileHeaderList.get(i);
System.out.println("****File Details for: " + fileHeader.getFileName() + "*****");
System.out.println("Name: " + fileHeader.getFileName());
System.out.println("Compressed Size: " + fileHeader.getCompressedSize());
System.out.println("Uncompressed Size: " + fileHeader.getUncompressedSize());
System.out.println("CRC: " + fileHeader.getCrc32());
System.out.println("************************************************************");
}
}
/**
* 解压zip
* @param folderOutAdd
* @param dir
* @throws ZipException
*/
public static void unzip(String folderOutAdd,String dir) throws ZipException{
ZipFile zipFile = new ZipFile(folderOutAdd);
zipFile.extractAll(dir);
}
/**
* 解压带密码的zip
* @param folderOutAdd
* @param dir
* @param password
* @throws ZipException
*/
public static void unzip(String folderOutAdd,String dir,String password) throws ZipException{
ZipFile zipFile = new ZipFile(folderOutAdd);
if (zipFile.isEncrypted()) {
zipFile.setPassword(password);
}
zipFile.extractAll(dir);
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
分享到:
相关推荐
Pinyin4jUtil 验证姓名与拼音是否一致,自持多音字。 /** * 汉字转换位汉语全拼,英文字符不变,特殊字符丢失 * 支持多音字,生成方式如(重当参:zhongdangcen,zhongdangcan,chongdangcen * ,...
4. **开发语言**:这指明django-jutil是作为开发工具使用的,可能包含各种便捷函数、装饰器或管理命令,以简化开发过程。 5. **Python库**:django-jutil作为一个Python库,是为了复用代码和提供特定功能,可以被...
修复转换BUGv1.1.41.[BUG] FileUtil 修复获取文件名和后缀名方法参数非存在的文件或目录抛出异常2.[ADDED] FileUtil 添加创建文件目录存在是否跳过控制3.[ADDED] FileUtil 添加获取与系统文件分隔符统一的路径4....
- 日志工具类:如Log4jUtil,用于统一日志记录,便于问题排查。 - 数据库操作工具类:如DBUtil,封装JDBC连接、SQL执行、结果集处理等,简化数据库操作。 - JSON解析工具类:如JsonUtil,提供JSON字符串与Java...
在这个"dom4j工具类使用例子"中,我们将深入探讨如何利用DOM4J进行XML处理。 首先,`Dom4jUtil.java`可能是包含DOM4J实用方法的类。这个类可能包括了创建、查询、修改XML文档的各种静态方法。例如,可能会有用于...
web 项目中的各种工具类 Bean2MapUtil 实体bean的数据转到map中 ...Pinyin4jUtil 提取汉字拼音的工具 StringUtil 字符转换类 UploadQueue 文件上传队列 UUIDGenerator UUID工具 XmlUtils XML读写工具
【压缩包子文件的文件名称列表】中的"00-junit4.9"可能表示的是Junit 4.9版本的库文件。这个版本可能包含了junit-4.9.jar,它是运行Junit 4.9测试所需的主库,还有可能包含hamcrest-core-1.3.jar,这是Junit 4.x版本...
CompressStringUtil压缩字符串与解压缩字符串 DESUtil加解密 DigestUtil加解密 Dimension2CodeUtil二维码生成与解析 Md5Util加解密 Pinyin4jUtil中文转拼音、中文转拼音首字母、中文转字节序列 PwdUtils生成4-32位的...
- **Dom4jUtil.java**: 包含DOM4J相关的实用工具函数,如创建和解析XML的辅助方法。 - **Dom4jTest.java**: 测试类,使用JUnit编写,用于验证DOM4JUtil的功能是否正常工作。 - **说明.txt**: 提供了关于如何使用这些...
DOM4J工具类是Java开发中用于处理XML文档的一个强大库,它提供了丰富的API来创建、修改和查询XML文档。这个工具类使得开发者能够更加便捷地进行XML操作,而无需直接接触复杂的DOM或SAX解析器。在描述中提到,DOM4J...
`.tar.gz`扩展名提示这是一个被gzip压缩的tar归档文件,这种格式在Unix-like系统和Python社区中广泛使用,因为它能有效压缩文件,减小下载和存储的需求。 要安装`django-jutil-3.0.8`,首先需要解压下载的`.tar.gz`...
Java pinyin4j.jar中文转拼音 详细可查看我的博客https://me.csdn.net/Extraordinarylife 中《Java pinyin4j.jar中文转拼音 》
1. **连接与断开**:`FtpClient`类是ftp4j的核心,通过`connect()`方法建立与FTP服务器的连接,`disconnect()`方法则断开连接。它支持主动和被动模式,以及TLS/SSL安全连接。 2. **登录与注销**:使用`login()`和`...
本篇文章将详细讲解与"FusionChart 工具类"相关的知识,主要关注`FusionChartUtil.java`和`Dom4jUtil.java`这两个文件。 首先,我们来看`FusionChartUtil.java`。这个类通常包含了与FusionCharts集成所需的各种实用...
对于`django-jutil-2.4.3.tar.gz`,首先需要解压缩文件,然后可以使用以下命令来安装: ```bash tar -zxvf django-jutil-2.4.3.tar.gz cd django-jutil-2.4.3 python setup.py install ``` 或者如果使用`pip`,...
4. **EasyUI自定义主题**:如果需要调整样式,可能需要学习如何定制EasyUI的主题,使用CSS或LESS文件。 5. **jutil.js工具函数**:研究jutil.js提供的各种函数,学习如何在项目中有效地利用它们。 6. **模块化开发...
在 eclipse 中导入解压缩的工程文件夹,修改配置文件:neo4j-cfg.properties。以 java application 模式运行 Neo4jUtil.java 即可。 测试环境信息: Neo4j Version: 3.5.13 jdk-1.8.0 eclipse jee oxygen 1a
朱蒂尔 Java的常用工具类包括Excel导入,正则表达式验证,图片处理,Http请求等,导入到nexus仓库豪华套餐,无需下载源码,添加maven依赖即可使用 欢迎各位踊跃提问题,用得...更多扩展除工具提供的校验类外,您还可以
jutil :从命令行戳入JSON 从命令行对JSON API进行了大量测试吗? 对结构化数据不加思索地侮辱了? 手指因打字而疼痛| python -mjson.tool | python -mjson.tool吗? 希望C 0 L O,[R S' 好吧, jutil (可能)...