Java压缩文件夹下所有文件

news/2024/11/16 9:38:12/

public class FileUtils{/*** 压缩文件** @param sourceFilePath 源文件路径* @param zipFilePath    压缩后文件存储路径* @param zipFilename    压缩文件名*/public static void compressToZip(String sourceFilePath, String zipFilePath, String zipFilename) {File sourceFile = new File(sourceFilePath);File zipPath = new File(zipFilePath);if (!zipPath.exists()) {zipPath.mkdirs();}File zipFile = new File(zipPath + File.separator + zipFilename);try (ZipOutputStream zos = new ZipOutputStream(new FileOutputStream(zipFile))) {writeZip(sourceFile, "", zos);//文件压缩完成后,删除被压缩文件boolean flag = deleteDir(sourceFile);log.info("删除被压缩文件[" + sourceFile + "]标志:{}", flag);} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e.getMessage(), e.getCause());}}/*** 遍历所有文件,压缩** @param file       源文件目录* @param parentPath 压缩文件目录* @param zos        文件流*/public static void writeZip(File file, String parentPath, ZipOutputStream zos) {if (file.isDirectory()) {//目录parentPath += file.getName() + File.separator;File[] files = file.listFiles();for (File f : files) {writeZip(f, parentPath, zos);}} else {//文件try (BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file))) {//指定zip文件夹//ZipEntry zipEntry = new ZipEntry(parentPath + file.getName());//生成的zip不包含该文件夹ZipEntry zipEntry = new ZipEntry(file.getName());zos.putNextEntry(zipEntry);int len;byte[] buffer = new byte[1024 * 10];while ((len = bis.read(buffer, 0, buffer.length)) != -1) {zos.write(buffer, 0, len);zos.flush();}} catch (Exception e) {e.printStackTrace();throw new RuntimeException(e.getMessage(), e.getCause());}}/*** 删除文件夹** @param dir* @return*/public static boolean deleteDir(File dir) {if (dir.isDirectory()) {String[] children = dir.list();for (int i = 0; i < children.length; i++) {boolean success = deleteDir(new File(dir, children[i]));if (!success) {return false;}}}//删除空文件夹return dir.delete();}
}


http://www.ppmy.cn/news/696603.html

相关文章

linux压缩文件夹命令

Linux 系统中压缩文件夹的命令是 tar。你可以使用如下的命令压缩文件夹&#xff1a; tar -czvf 压缩文件名.tar.gz 要压缩的文件夹名这条命令会将文件夹 要压缩的文件夹名 压缩成名为 压缩文件名.tar.gz 的压缩包。 你也可以使用 zip 命令来压缩文件夹&#xff1a; zip -r 压缩…

文件与文件夹压缩成zip包

文件与文件夹的压缩&#xff0c;其实本质上都是文件的压缩&#xff0c;只是文件夹在压缩时&#xff0c;要判断是否为文件夹&#xff0c;以及文件夹下是否有文件&#xff1b;而同时要处理空文件夹&#xff0c;即空文件夹是否要压缩进zip包中。 file.isDirectory()&#xff1a;返…

【python】批量压缩文件夹

文章目录 下载场景使用思路代码 下载 百度云 提取码&#xff1a;cyyy 链接&#xff1a;https://pan.baidu.com/s/1-RNZoS9hUvNodQZhF26hXA?pwdcyyy 提取码&#xff1a;cyyy 场景 昨天是北湖的活动&#xff0c;他们拍了很多照片&#xff0c;今天我要把一大堆图片分类&#xff…

linux压缩解压缩文件夹或文件命令详解

一、压缩当前目录下的文件夹或者文件app到app.tar tar -cvf app.tar app二、解压缩当前目录下的压缩包app.tar到app tar -xvf app.tar三、不解压的情况下查看压缩包里的内容 tar -tf app.tar四、参数详解 1、必选参数&#xff1a;-f: 使用档案名字&#xff0c;这个参数是最…

File对文件夹、文件进行压缩

对文件夹或者文件进行压缩工具类 import javax.servlet.http.HttpServletResponse; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.util.zip.ZipEntry; import java.util.zip…

将文件夹压缩成zip文件

一 代码 package ZipFile;import org.apache.commons.io.FileUtils; import org.apache.commons.lang.StringUtils; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import java.io.InputStream; import java.io.*; import java.util.zip.ZipEntry; im…

Linux下的zip压缩解压缩文件夹

实例&#xff1a;压缩服务器上当前目录的内容为xxx.zip文件 zip -r xxx.zip ./* 解压zip文件到当前目录 unzip filename.zip 另&#xff1a;有些服务器没有安装zip包执行不了zip命令&#xff0c;但基本上都可以用tar命令的&#xff0c;实例如下&#xff1a; tar -zcvf /home/z…

使用python压缩文件夹

python中有专业的库对文件夹进行压缩 zipfile 压缩zip文件 tarfile 压缩tar文件 在windows上的压缩文件格式多为rar,这种类型没有专门的库,如果使用python操作的话,可以编码调用命令行工具,执行Windows上的压缩命令; zipfile zipfile 是python的一个内置模块,专门用于压缩…