将某个目录下的所有文件进行压缩
/** * @project: Test * @author chenssy * @date 2013-7-28 * @Description: 文件压缩工具类 * 将指定文件/文件夹压缩成zip、rar压缩文件 */ class CompressedFileUtil { /** * 默认构造函数 */ public CompressedFileUtil(){ } /** * @desc 将源文件/文件夹生成指定格式的压缩文件,格式zip * @param resourcesPath 源文件/文件夹 * @param targetPath 目的压缩文件保存路径 * @return void * @throws Exception */ public void compressedFile(String resourcesPath,String targetPath) throws Exception{ File resourcesFile = new File(resourcesPath); //源文件 File targetFile = new File(targetPath); //目的 //如果目的路径不存在,则新建 if(!targetFile.exists()){ targetFile.mkdirs(); } String targetName = resourcesFile.getName()+".zip"; //目的压缩文件名 FileOutputStream outputStream = new FileOutputStream(targetPath+"\\"+targetName); ZipOutputStream out = new ZipOutputStream(outputStream); createCompressedFile(out, resourcesFile, null); out.close(); } /** * @desc 生成压缩文件。 * 如果是文件夹,则使用递归,进行文件遍历、压缩 * 如果是文件,直接压缩 * @param out 输出流 * @param file 目标文件 * @return void * @throws Exception */ public void createCompressedFile(ZipOutputStream out,File file,String dir) throws Exception{ //如果当前的是文件夹,则进行进一步处理 if(file.isDirectory()){ //得到文件列表信息 File[] files = file.listFiles(); //将文件夹添加到下一级打包目录 if(dir!=null){//这个判断是防止打包出一个没有名字的空文件夹 out.putNextEntry(new ZipEntry(dir+"/")); dir = dir.length() == 0 ? "" : dir +"/"; } if(dir==null){//防止第一次下面调用dir是为空 dir = ""; } //循环将文件夹中的文件打包 for(int i = 0 ; i < files.length ; i++){ createCompressedFile(out, files[i], dir + files[i].getName()); //递归处理 } } else{//当前的是文件,打包处理 //文件输入流 FileInputStream fis = new FileInputStream(file); out.putNextEntry(new ZipEntry(dir)); out.setEncoding("utf8"); //进行写操作 int j = 0; byte[] buffer = new byte[1024]; while((j = fis.read(buffer)) > 0){ out.write(buffer,0,j); } //关闭输入流 fis.close(); } } 测试:
public static void main(String[] args) throws Exception { CompressedFileUtil compressedFileUtil = new CompressedFileUtil(); compressedFileUtil.compressedFile("E:\\aaa", "E:\\wang");//param1.要压缩的目录,param2.压缩后存放的目录}
转载于:https://www.cnblogs.com/wangjing666/p/7642141.html
将某个目录下的所有文件进行压缩相关推荐
- 递归思想解决输出目录下的全部文件
刚刚了解了下递归思想 递归就是在方法内调用本方法 下面说一个实际的应用 输出目录下的全部文件,当目录中还有目录时,则进入目录输出里面的文件 import java.io.*; class ShowFi ...
- 用bash命令得到Windows一个目录下的所有文件并且把结果输入到一个文件
方式一: 只用如下一条语句就可以了: tree/f>index.txt 放入一个文件中命名为"****.bat" 双击就会在该目录下生成一个index.txt文件,在这个文件 ...
- python删除过期文件_Python删除指定目录下的过期文件的代码
在代码过程中,将代码过程中比较常用的一些代码段做个备份,如下的代码是关于Python删除指定目录下的过期文件的代码,应该能对小伙伴也有帮助. import os import sys import t ...
- Apache Tomcat 曝文件包含漏洞:攻击者可利用该漏洞读取webapp目录下的任意文件...
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | oschina 来源 | https://ww ...
- python 递归目录_Python3:递归实现输出目录下所有的文件
今天来整理一下os库中方法的使用,如何输出一个目录下的所有文件? 1.首先介绍几个基本的的方法: 1)os.getcwd() #返回当前工作目录 2)os.listdir() #返回一个列表, ...
- java 指定文件格式_java删除指定目录下指定格式文件的方法
本文实例为大家分享了java删除指定目录下指定格式文件的具体代码,供大家参考,具体内容如下 正在看疯狂java讲义这本书,发现源码中有我不需要的class文件,想批量把它删除 代码如下: import ...
- TreeView获取目录下的所有文件
/// <summary> /// TreeView获取目录下的所有文件 /// </summary> /// <param name="tree"& ...
- java 20 -3 递归之删除特定目录下的特定文件
1 /* 2 需求:删除H:\demo目录下的带内容的文件 3 分析: 4 A:封装该目录 5 B:获取该目录下所有的文件或文件夹的File数组 6 C:遍历该File数组,获取每一个File对象 7 ...
- html复制文件到目录,复制指定目录下的全部文件到另一个目录中
linux下文件的复制.移动与删除命令为:cp,mv,rm 复制指定目录下的全部文件到另一个目录中 假设复制源目录 为 dir1 ,目标目录为dir2.怎样才能将dir1下所有文件复制到dir2下了 ...
最新文章
- python实现二分查找(折半查找)算法
- 盘州2021高考成绩查询,盘州2021高中复读
- 【软考-软件设计师】计算机安全
- keras从入门到放弃 (一) 线性回归
- 从Java到Go面向对象--继承思想.md
- Storm 起步 Zookeeper Storm 单机部署
- PostgreSQL SQL OUTLINE插件sr_plan (保存、篡改、固定 执行计划)
- 【声学基础】概述——振动学
- 天外印刷的计件工资项目结束了
- 前端利器!让AI根据手绘原型生成HTML | 教程+代码
- [置顶] Android玄铁剑之TextView之图文并茂
- 铭瑄显卡不支持Linux,铭瑄主板bios设置显卡方法
- Comet OJ 热身赛(K题)principal(括号匹配问题+stack模拟)
- 中文文本分析工具总结
- 京东价格监控软件开发技术探讨一:C#实现获取京东商品信息(价格、库存)
- 冰点还原 7.20.20.3398 For Win2003 支持2TB硬盘版下载,附KEY和修改方法
- python common很久不用我都忘了一些函数了,给boss添麻烦了
- 结对编程的合作情况,以及结对编程的优缺点
- 【第一部分-环境搭建】Opencv环境搭建(Visual Studio+Windows)
- 美拍短视频成本减半及毫秒起播优化实践