Java 将文件夹下指定的文件打包成zip

最近工作中需要将指定文件夹下的文件,挑选出来,并打包下载。网上查询后,使用zipFile实现压缩,这里记录下来,方便备查。

//引入ZipFile的包
import net.lingala.zip4j.core.ZipFile;
/**
 * 文件的压缩
 * @param mapList 人员列表
 * @param dest 压缩包路径
 * @throws Exception
 */
public void fileCompact(List<Map<String, Object>> mapList,String dest) throws Exception{
		//定义临时文件tempFile 
		File tempFile = null;
		try {
			//报表文件夹
			File reportDir = "D:\\report");
			if (!reportDir.exists()) {
				reportDir.mkdirs();
			}
			File endDirection=new File(dest);
			//判断是否已经存在文件,有 则执行删除文件操作
			if (endDirection.exists()) {
				endDirection.delete();
			}
			//初始化 ZipParameters 为空 
			ZipParameters parameters = null;
			String name = null;
			//遍历人员list集合
			for (int i = 0; i < mapList.size(); i++) {
				//dest 为输出的zip的路径  D:\\data.zip
				ZipFile zipFile = new ZipFile(dest);
				//获取人员的名称
				name = "" + mapList.get(i).get("name"); 
				parameters = new ZipParameters();
				parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
				parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
				//读取report文件夹的人员的文件  如 tom.doc
				tempFile = new File(reportDir, name +".doc");
				if (!tempFile.exists()) { // 没有报表文件则继续
					continue;
				}
				//将遍历出来的报表文件放到压缩文件中
				zipFile.addFile(tempFile, parameters);
				// 将文件夹直接添加到压缩文件
				zipFile.addFolder(reportDir,parameters);
			}
		} catch (Exception e) {
			throw new Exception("文件压缩失败!");
		} finally {
			
		}
	}
博客参考

【1】https://blog.csdn.net/zhanghui3239619/article/details/78956357

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页