`
阿杜杜不是阿木木
  • 浏览: 21618 次
  • 性别: Icon_minigender_1
  • 来自: 沈阳
社区版块
存档分类
最新评论

Zip4jUtil压缩解压缩文件工具类

 
阅读更多
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.java

    Pinyin4jUtil 验证姓名与拼音是否一致,自持多音字。 /** * 汉字转换位汉语全拼,英文字符不变,特殊字符丢失 * 支持多音字,生成方式如(重当参:zhongdangcen,zhongdangcan,chongdangcen * ,...

    Dom4jUtils 工具类让你更加方便操作XML的MarkerIce.Jar

    总结来说,`Dom4jUtils`工具类是DOM4J库的一个便利扩展,它提供了一系列便捷的方法来处理XML文件。在`MarkerIce.jar`这个特定的上下文中,`Dom4jUtils`可能用于XML配置的读取、解析和更新,从而简化了在Ice框架中的...

    PyPI 官网下载 | django-jutil-3.7.13.tar.gz

    4. **开发语言**:这指明django-jutil是作为开发工具使用的,可能包含各种便捷函数、装饰器或管理命令,以简化开发过程。 5. **Python库**:django-jutil作为一个Python库,是为了复用代码和提供特定功能,可以被...

    jutil:Java 常用工具类。如:数组、集合、日期、文件、转换器等工具类的封装

    修复转换BUGv1.1.41.[BUG] FileUtil 修复获取文件名和后缀名方法参数非存在的文件或目录抛出异常2.[ADDED] FileUtil 添加创建文件目录存在是否跳过控制3.[ADDED] FileUtil 添加获取与系统文件分隔符统一的路径4....

    java个人开发工具类

    - 日志工具类:如Log4jUtil,用于统一日志记录,便于问题排查。 - 数据库操作工具类:如DBUtil,封装JDBC连接、SQL执行、结果集处理等,简化数据库操作。 - JSON解析工具类:如JsonUtil,提供JSON字符串与Java...

    dom4j 工具类 使用例子

    在这个"dom4j工具类使用例子"中,我们将深入探讨如何利用DOM4J进行XML处理。 首先,`Dom4jUtil.java`可能是包含DOM4J实用方法的类。这个类可能包括了创建、查询、修改XML文档的各种静态方法。例如,可能会有用于...

    web 项目中的各种工具类

    web 项目中的各种工具类 Bean2MapUtil 实体bean的数据转到map中 ...Pinyin4jUtil 提取汉字拼音的工具 StringUtil 字符转换类 UploadQueue 文件上传队列 UUIDGenerator UUID工具 XmlUtils XML读写工具

    完整单元测测Jutil数据包

    【压缩包子文件的文件名称列表】中的"00-junit4.9"可能表示的是Junit 4.9版本的库文件。这个版本可能包含了junit-4.9.jar,它是运行Junit 4.9测试所需的主库,还有可能包含hamcrest-core-1.3.jar,这是Junit 4.x版本...

    字符串文件http密码资源文件openoffice图片等工具等

    CompressStringUtil压缩字符串与解压缩字符串 DESUtil加解密 DigestUtil加解密 Dimension2CodeUtil二维码生成与解析 Md5Util加解密 Pinyin4jUtil中文转拼音、中文转拼音首字母、中文转字节序列 PwdUtils生成4-32位的...

    Modbus4jUtils.java

    java写的modelbus工具类 读写功能 以及通过ip 查看硬件设备是否在线功能。工具类非常好用。

    通过Dom4j创建和读取xml文件下载

    - **Dom4jUtil.java**: 包含DOM4J相关的实用工具函数,如创建和解析XML的辅助方法。 - **Dom4jTest.java**: 测试类,使用JUnit编写,用于验证DOM4JUtil的功能是否正常工作。 - **说明.txt**: 提供了关于如何使用这些...

    dom4j工具类

    DOM4J工具类是Java开发中用于处理XML文档的一个强大库,它提供了丰富的API来创建、修改和查询XML文档。这个工具类使得开发者能够更加便捷地进行XML操作,而无需直接接触复杂的DOM或SAX解析器。在描述中提到,DOM4J...

    PyPI 官网下载 | django-jutil-3.0.8.tar.gz

    `.tar.gz`扩展名提示这是一个被gzip压缩的tar归档文件,这种格式在Unix-like系统和Python社区中广泛使用,因为它能有效压缩文件,减小下载和存储的需求。 要安装`django-jutil-3.0.8`,首先需要解压下载的`.tar.gz`...

    pinyin4j.jar中文转拼音及多音字配置文件

    Java pinyin4j.jar中文转拼音 详细可查看我的博客https://me.csdn.net/Extraordinarylife 中《Java pinyin4j.jar中文转拼音 》

    FTP客户端Java类库 ftp4j

    1. **连接与断开**:`FtpClient`类是ftp4j的核心,通过`connect()`方法建立与FTP服务器的连接,`disconnect()`方法则断开连接。它支持主动和被动模式,以及TLS/SSL安全连接。 2. **登录与注销**:使用`login()`和`...

    FusionChart 工具类

    本篇文章将详细讲解与"FusionChart 工具类"相关的知识,主要关注`FusionChartUtil.java`和`Dom4jUtil.java`这两个文件。 首先,我们来看`FusionChartUtil.java`。这个类通常包含了与FusionCharts集成所需的各种实用...

    PyPI 官网下载 | django-jutil-2.4.3.tar.gz

    对于`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`,...

    EasyUI扩展方法 + jutil.js

    4. **EasyUI自定义主题**:如果需要调整样式,可能需要学习如何定制EasyUI的主题,使用CSS或LESS文件。 5. **jutil.js工具函数**:研究jutil.js提供的各种函数,学习如何在项目中有效地利用它们。 6. **模块化开发...

    图形数据库Neo4j之Java API使用示例

    在 eclipse 中导入解压缩的工程文件夹,修改配置文件:neo4j-cfg.properties。以 java application 模式运行 Neo4jUtil.java 即可。 测试环境信息: Neo4j Version: 3.5.13 jdk-1.8.0 eclipse jee oxygen 1a

Global site tag (gtag.js) - Google Analytics