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());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();}
}

java压缩文件夹下所有文件相关推荐

  1. Java删除指定文件夹下的文件和目录

    Java删除指定文件夹下的文件和目录 import java.io.File;public class TestFile {public static void main(String[] args) ...

  2. java中File类应用:遍历文件夹下所有文件

    练习: 要求指定文件夹下的所有文件,包括子文件夹下的文件 代码: package 遍历文件夹所有文件;import java.io.File;public class Test {public sta ...

  3. java删除文件模糊_Java实现的模糊匹配某文件夹下的文件并删除功能示例

    本文实例讲述了Java实现的模糊匹配某文件夹下的文件并删除功能.分享给大家供大家参考,具体如下: package com.wyebd.gis; import java.io.File; /** * @ ...

  4. java读取文件夹下所有文件并替换文件每一行中指定的字符串

    java读取文件夹下所有文件并替换文件每一行中指定的字符串 该文章为转载文章,请尊重原文作者的劳动成果,好的文章应该被展示 原文传送门 多说两句,关键时候救人性命的人,可以称之为大人,随时做好利见大人 ...

  5. java 获取文件夹下所有文件

    java 获取文件夹下所有文件 以下两个函数实现获取文件夹下所有文件 /*** 获取指定文件夹下所有文件,不含文件夹里的文件** @param dirFilePath 文件夹路径* @return*/ ...

  6. Java中怎么获取文件夹的名称_java获取文件夹下所有文件的名称

    <java获取文件夹下所有文件的名称>由会员分享,可在线阅读,更多相关<java获取文件夹下所有文件的名称(2页珍藏版)>请在人人文库网上搜索. 1.如果想要获得当前文件中的文 ...

  7. java遍历文件夹下的文件

    网上大多采用java递归的方式遍历文件夹下的文件,这里我不太喜欢递归的风格,就用循环的方式遍历文件夹下的文件,这里用的File的listFiles()方法,下面贴一个使用示例 这是需要遍历的文件夹: ...

  8. linux 压缩当前文件夹下所有文件

    linux zip压缩.压缩当前文件夹下所有文件,压缩为a.zip.命令行的方法是怎样. zip -r fileName.zip 文件夹名 tar tar命令可以用来压缩打包单文件.多个文件.单个目录 ...

  9. Java删除文件夹下所有文件的方法

    1.使用FileUtils类 来自 Apache Commons IO的FileUtils类提供了几个方便的文件操作实用程序.您可以使用该FileUtils.cleanDirectory()方法递归删 ...

  10. linux替换某个文件夹下所有文件,Linux 批量查找并替换文件夹下所有文件的内容...

    1.批量查找某个目下文件的包含的内容 cd etc grep -rn "查找的内容" ./ 2.批量替换某个目下所有包含的文件的内容 cd etc sed -i "s/查 ...

最新文章

  1. vue引入图片路径的三种主要方法
  2. anaconda怎么下载python3.6_Anaconda Python3.6下载
  3. linux基础知识——exec函数
  4. zend studio设置自动保存
  5. idea运行maven:No URLs will be polled as dynamic configuration sources
  6. 向新手和不愿意尝试的童鞋推荐vim插件(转载)
  7. KB954430补丁重复安装失败的解决办法
  8. 如何使用键盘快捷键在Mac上录制屏幕?
  9. 【图像压缩】基本matlab DCT+量化+huffman JPEG图像压缩【含Matlab源码 1217期】
  10. 计算机地图制图的点状符号制作,点状符号
  11. 键盘代替鼠标工具 Vimac for Mac
  12. Matlab曲线平滑
  13. c# 小票打印机打条形码_C# Code 128条形码打印的问题
  14. Mysql 超键 候选键 主键 外键之间关系
  15. docker 配置 CA验证
  16. 右键菜单项删除 pycharm vs
  17. 云服务器系统一键安装,一键安装服务器系统
  18. 使用GBase企业管理器执行 select count(1) into @c from t1;报错解决方案
  19. 书桌台灯怎么选?分享儿童卧室灯品牌
  20. DPlayer播放m3u8

热门文章

  1. WPF学习之绘图和动画
  2. Binarized Neural Network : BNN二值神经网络代码实例
  3. A better Tooltip with jQuery
  4. ptp精准时间协议_PTP时钟协议原理
  5. android 获取方法名,Android获取渠道名称
  6. 硒化钼纳米颗粒/MoSe2 Nanoparticles的介绍 提供氨基/NH2/羧基COOH/PEG/蛋白Protein/抗体antibody功能化修饰的硒化钼纳米颗粒/MoSe2 Nanoparti
  7. C语言协程库async
  8. qt删除键值_Qt QMap键值对基本用法(键值对)
  9. 浏览器主页被篡改劫持怎么办、主页被劫持的解决办法
  10. CTFweb篇——html源代码签到题