import lombok.extern.slf4j.Slf4j;
import java.io.*;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
/**
* @Author windwardbird
* @packageName
* @time 2020/9/17 9:56
* @describeOfFunction: 生成zip
*/
@Slf4j
public class GenerateZipUtils {
private static final String TARGET_PATH = "D:"+File.separator+"test"+File.separator+""; //生成zip的路径
private static fianl String MARK_OK = "生成zip成功";
private static fianl String MARK_FAIL = "生成zip失败";
/**
* @description:
* @date: 2020/9/17 9:59
* @param: sourcePath 原文件路径 zipName 生成zip 压缩包名字
* @return:
*/
public String createZip(String sourcePath, String zipName) throws Exception{
String zipPath = TARGET_PATH;
File sourceFile = new File(sourcePath);
FileInputStream fis = null;
BufferedInputStream bis = null;
FileOutputStream fos = null;
ZipOutputStream zos = null;
if(!sourceFile.exists()){
log.error(sourcePath + "not exist!");
}else{
if (!new File(zipPath).exists()) {
new File(zipPath).mkdirs(); //不存在创建文件夹多层目录
}
File zipFile = new File(zipPath + File.separator + zipName + ".zip");
if(zipFile.exists()){
log.info(zipPath + zipName + ".zip" + "is exist");
}else{
File[] sourceFiles = sourceFile.listFiles();
if(null==sourceFiles ||sourceFile.length()<1){
log.info("not found file");
}else{
try {
// 原文件夹下有文件,进行压缩
fos = new FileOutputStream(zipFile);
zos = new ZipOutputStream(new BufferedOutputStream(fos));
byte[] bufs = new byte[1024 * 64];
for (int i = 0; i < sourceFiles.length; i++) {
ZipEntry zipEntry = new ZipEntry(sourceFiles[i].getName());
if(sourceFiles[i].getName().endsWith(".zip")||sourceFiles[i].getName().endsWith(".rar")) continue;
zos.putNextEntry(zipEntry);
fis = new FileInputStream(sourceFiles[i]);
bis = new BufferedInputStream(fis, 1024 * 64);
int read = 0;
while ((read = bis.read(bufs, 0, 1024 * 64)) != -1) {
zos.write(bufs, 0, read);
}
}
result = MARK_OK ;
} catch (IOException e) {
e.printStackTrace();
log.error(e.getMessage());
} finally {
// 关流
try {
if (null != bis) bis.close();
if (null != zos) zos.close();
} catch (IOException e) {
e.printStackTrace();
log.error(e.getMessage());
}
}
}
}
}
return MARK_FAIL ;
}
}
相关推荐
zlib库的使用,可以压缩和解压文件夹.zip
zlib库的使用,可以压缩和解压文件夹。 压缩: CreateDirFromZip("test\\example2", "test\\example.zip"); 解压: CreateZipFromDir("test\\example", "test\\example.zip");
Zip.cpp的例子
。 简介 我已经介绍了在{A} XZip。本文介绍XZip也XUnzip,这允许您添加ZIP解压缩到您的应用程序,而不使用任何的。lib或。dll。 首先,让我承认的工作和生产的。cpp和。h文件是基于XZip。XZip和XUnzip特点 的大部分功能都体现在XZip演示程序。下面是主要的:CreateZip() - 创建一个zip归档文件。 ZipAdd() - 将文件添加到一个zip档案
C++ zip压缩解压缩源代码
C++ zip压缩解压缩源代码 压缩时调用 #include "zip.h" HZIP hz = CreateZip("c:\\simple1.zip",0); ZipAdd(hz,"znsimple.bmp", "c:\\simple.bmp"); ZipAdd(hz,"znsimple.txt", "c:\\simple.txt"); CloseZip(hz); 解压时调用 #include "unzip.h" // HZIP hz = OpenZip("c:\\stuff.zip",0); ZIPENTRY ze; GetZipItem(hz,-1,&ze); int numitems=ze.index; for (int i=0; i<numitems; i++) { GetZipItem(hz,i,&ze); UnzipItem(hz,i,ze.name); } CloseZip(hz);
php生成临时文件,php生成zip压缩文件的方法详解
本篇文章是对php生成zip压缩文件的方法进行了详细的分析介绍,需要的朋友参考下require_once "./include/zip.php";$zip = new PHPZip();//$zip -> createZip("要压缩的文件夹目录地址", "压缩后的文件名.zip"); //只生成不自动下载$zip -> downloadZip("要压缩的文件夹目录地址", "压缩...
CreateZipFile
把指定的数据导出成txt文件
模拟CMOS 第2章 MOS器件物理基础
模拟CMOS 第2章 MOS器件物理基础 文章目录模拟CMOS 第2章 MOS器件物理基础2.1 基本概念2.1.1 MOSEFT开关2.1.2 MOSEFT结构2.1.3 MOS符号2.2 MOS的I/V特性2.2.1 阈值电压2.2.2 I/V特性的推导2.3 二级效应2.4 MOS器件模型2.4.1 MOS器件版图2.4.2 MOS器件电容2.4.3 MOS小信号模型2.4.4 MOS SPICE模型2.4.5 NMOS与PMOS器件的比较2.4.6 长沟道器件与短沟道器件的比较附录A 用作电容器MO
php 创建zip,如何使用PHP ZipArchive创建zip文件并下载?
在项目开发过程中,我们可能会需要实现创建zip文件并提供下载的功能。那么这里我们就可以使用ZipArchive类来创建zip文件,然后进行下载。我给你们举个简单的例子。有时候我们需要使用php代码创建zip归档文件,在zip文件中添加一些照片、文档等,然后提供下载。这里我们将创建一个非常简单的方法createZip(),它将帮助创建zip归档文件。使用这个方法,你可以简单地传递数组的文件,文档,图...
硬件基础(4):(7)ADC电压采集:软件校准(标定、拟合)
在实际项目中,**软件端校准**可以有效弥补硬件方面(分压电阻误差、放大器失调、参考源误差等)带来的系统性偏差,从而提高 ADC 测量精度。下面是一个常见的**多点实测校准**流程与思路,个人感觉传感器标定的原理也只这样。
Zip Task:创建zip文件[z]
From: [url]http://book.youkuaiyun.com/bookfiles/379/10037914225.shtml[/url] Zip这个任务用于实现打包zip文件的功能。在Zip任务里可以直接嵌套使用FileSet类型、include类型、exclude类型等,在这些文件类型中还可以对文件进行过滤。 4.10.1 Zip Task的属性及作用 Zip任务具有以下属性,用于...
YOLOv11多模态融合实战:基于YOLOFuse的RGB与红外线(IR)协同检测技术解析
本文深入解析了YOLOv11多模态融合技术,重点介绍基于YOLOFuse框架的RGB与红外线(IR)协同检测方法。通过动态权重分配、跨模态特征对齐等创新设计,实现在低光照等复杂环境下的高精度目标检测,mAP提升高达37%。文章包含实战案例、训练技巧和部署方案,为计算机视觉开发者提供完整的多模态融合解决方案。
Openwork 入门指南:开源 AI 桌面助手快速上手
Openwork是一款开源的AI桌面代理工具,提供类似Claude Cowork的免费替代方案。它支持本地运行,确保隐私安全,并能高效处理文件整理、文档读写等任务。支持多种AI模型,通过MIT许可完全免费。安装简单,仅需运行命令行或下载桌面版,需配置API Key后即可使用。操作直观,支持多步骤规划和权限控制,适合自动化重复工作。目前主要支持macOS,未来将扩展至Windows/Linux。建议从简单任务入手,逐步掌握这一高效的数字助手工具。
生成ZIP压缩包
jdk-1.4====================================== public String genereateRARFile(String flow , List listFileName,String exname,String filepath) { String file123= filepath + Fil...
先进封装技术的一些优缺点探讨
半导体封装技术是半导体制造过程中的关键环节,它不仅保护了芯片免受物理损伤,还提供了电气连接和散热功能。随着技术的发展,出现了多种先进的封装技术,每种技术都有其特定的应用场景和优缺点。
Java生成zip压缩包
Java生成zip压缩包 [code="java"] package core; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; impor...
ubuntu 18.04 + Kimera slam 安装与demo测试
环境:opencv 3.4.12,其他的都是按照文档下载的。 首先进行组件的安装 一、Kimera-VIO 安装参考文档:https://github.com/MIT-SPARK/Kimera-VIO/blob/master/docs/kimera_vio_install.md 按照文档装就好,在安装过程中碰到如下问题: 0、make 过程很卡,不要用所有的核 1、cmake过程中卡下载 ORBvoc.zip ,手动下载这个文件,解压,将里面的3个文件,放到/Kimera-VIO/vocabu.
010Editor实战:5分钟破解Zip伪加密文件(附BUUCTF真题解析)
本文详细介绍了如何使用010Editor快速破解Zip伪加密文件,包括BUUCTF真题的完整解析。通过修改关键字节,轻松解除伪加密状态,适用于CTF竞赛和实际工作场景,提升文件处理效率。
java批量下载生成zip压缩包
设计思路: 1.本地先创建一个zip文件 2.将批量下载的文件依次放入zip文件中 3.将zip文件返回给前端 //一、本地先生成zip文件 //要批量下载的文件id数组 String[] ids = new String[] {"1","2"} //创建zip String localZipFile = "D:/temp/test.zip" ; ZipOutputStream out = new ZipOutputStream(new FileOutputStream(localZipFil
保姆级教程:在SIwave 2024 R2中搞定TDR仿真,手把手教你分析USB 3.0差分线阻抗
本文提供了一份详细的SIwave 2024 R2 TDR仿真教程,重点讲解如何分析USB 3.0差分线阻抗。从项目准备、参数配置到结果分析,逐步指导工程师完成完整的仿真流程,并分享实战经验和高级技巧,帮助提升信号完整性分析能力。
Java生成多个pdf文件,压缩包zip下载
@RequestMapping(value = "/downloadIDCardPDF", method = RequestMethod.GET) public void downloadIDCardPDF(String ids, HttpServletResponse response) throws Exception { //工人进场合同模板 ...
Statistics and Machine Learning Toolbox
Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具
SAP B1中文培訓教材_SDK
公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说
基于ThinkPHP实现动态ZIP压缩包的生成
这段代码首先创建了一个新的ZipArchive对象,然后尝试打开一个临时文件进行写入,添加了图片、文档和音乐文件到ZIP包。创建完毕后,关闭了ZIP对象,并设置了HTTP头信息提供文件下载。在ThinkPHP框架中生成动态ZIP压缩包涉及到文件处理和压缩包管理,可以通过PHP的ZipArchive类来实现。下面逐步介绍如何在ThinkPHP框架中实现动态ZIP压缩包的生成。函数将ZIP包内容直接输出到浏览器供用户下载,并在发送给用户后删除了服务器上的临时文件。
IMSL CNL 7.0.0 (x86-64)Crack
IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件
java生成压缩包zip
java可以生成压缩包zip,很简单。看个例子 注意导入相应的jar包。 ant.jar package com.sysc.xmleditor.utils; import java.io.File; import org.apache.tools.ant.Project; import org.apache.tools.ant.taskdefs.Zip; im...
SIMATIC S7-1200, S7-1500 PID 控制[手册]
SIMATIC S7-1200, S7-1500 PID 控制[手册]
python web项目导出zip文件_通过javascript在网页端生成zip压缩包并下载
zip.js是什么通过zip.js封装一个能在网页端生成zip文件的插件, 直接在网页中创建包含文件夹和文件的压缩包,也可以自定义名字并下载;如何使用:1:引用zip.js2:引用jQuery;3:并引用封装的ZipArchive.js,(因为zip.js的api使用起来比较繁琐,所以自己封装实现了这个插件)4:引用mime-types.js;DEMO, 使用方式为:zip.useWebWork...
js生成.zip压缩包并保存到本地
近日用electron平台做了一个web desktop的小程序,通过这个小程序可以生成并校验服务器各个节点需要的ini文件。因为服务器的节点繁多,所以会生成多个ini文件,也就提出了一个需求,把这多个ini文件压缩成一个zip返回给用户。 这是我的第一个js的web desktop app,忍不住上来分享一下:var ini = require('ini'); var zip = new req
【导出】多文件导出生成zip压缩包
【代码】【导出】多文件导出生成zip压缩包。
編譯源代碼生成zip壓縮包
今天從GitHub上下載了kafkaManager的源代碼,進行編譯并且成功了,不過這是我第一次試,如果下次用今天的方法還編譯成功的話,我會把開頭這幾句話刪掉!! 步驟 1、從GitHub上下載了源代碼 2、用sbt编译 2.1、用yum先把sbt安装上 curl https://bintray.com/sbt/rpm/rpm > bintray-sbt-rpm.repo mv bint...
php怎么转zip,PHP如何生成zip压缩包 PHP生成zip压缩包常用方法
本篇文章小编给大家分享一下PHP生成zip压缩包常用方法,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。压缩一个文件我们将一个文件生成一个压缩包。open($filename,ZipArchive::CREATE); //打开压缩包$zip->addFile($path,basename($path)); //向压缩包中添加文件$zip->close();...
2922



被折叠的 条评论
为什么被折叠?



