Java 压缩文件夹
本文只针对压缩文件夹(不用于压缩文件,若需要,自行更改)
public class ZipTool {File f0; //被压缩的目标File f1; //压缩后的目录及文件名public ZipTool(File f0, File f1) {this.f0 = f0;this.f1 = f1;start();}public void start() {try (ZipOutputStream out = new ZipOutputStream(new FileOutputStream(f1))) {File[] flist = f0.listFiles();//对输入目录进行查看for (File o : flist) {writeFile(o, out);}} catch (IOException e) {e.printStackTrace();}}public void writeFile(File f, ZipOutputStream out) {try {if (judgeFile(f)) {File[] flists = f.listFiles();//判断输入的文件夹是否有文件if (flists.length == 0) {String s = f.toString().substring(3);out.putNextEntry(new ZipEntry(s + " " + "/"));//空文件仅仅创建文件夹} else {//非空文件则遍历后创建文件for (File oo : flists) {writeFile(oo, out); //递归方法}}} else {InputStream in = new BufferedInputStream(new FileInputStream(f));int len;byte[] b = new byte[8192];String s = f.toString().substring(3);out.putNextEntry(new ZipEntry(s));while ((len = in.read(b)) != -1) {out.write(b, 0, len);}in.close();}} catch (IOException e) {e.printStackTrace();}}//写文件public boolean judgeFile(File f) {if (f.isDirectory()) {return true;//是文件夹就返回} else {return false;//不是就不返回}}//对文件夹处理
}
已知BUG:对于空文件夹的压缩,压缩后名字与原文件夹不相符
原因:因不知某因无法直接压缩空文件夹,故给空文件明加了个空字符串
流程:放目录→判断是否为文件夹→是→判断是否为文件夹→是 创建空文件夹
⬇否 否⬇
直接创建对应文件 递归到最开始
Java 压缩文件夹相关推荐
- java 压缩文件夹_java 实现压缩文件(单文件 或 文件夹)
接着上篇了解一下java压缩实现过程,下面的是支持 单文件 或 文件夹 压缩的实现,使用递归. 效果: 代码: package com.gx.compress; import java.io.Buff ...
- 【转载】用java压缩文件夹/文件
压缩文件夹代码: import java.io.File; import org.apache.tools.zip.ZipOutputStream; //这个包在ant.jar里,要到官方网下载 im ...
- java压缩文件夹(含有空文件夹)
两种实现方式: java.util.zip.ZipOutputStream org.apache.tools.ant 注意 最初采用java.util.zip.ZipOutputStream的方式, ...
- linux下 java 压缩文件夹,java压缩文件夹linux下乱码问题
前几天写了文章介绍java文件夹的压缩(见 http://zwllxs.iteye.com/blog/836483),但是发现一个问题,在linux下,如果文件夹内的文件是中文名,那么压缩后,这些文件 ...
- java zip文件夹_如何使用java压缩文件夹成为zip包
展开全部 在JDK中有一个zip工具类:java.util.zip Provides classes for reading and writing the standard ZIP and G ...
- java压缩文件夹并加密
工作遇到,记录下 import net.lingala.zip4j.core.ZipFile; import net.lingala.zip4j.exception.ZipException; imp ...
- java快速压缩文件夹_如何使用java压缩文件夹本身
它可以通过包java.util.Zip轻松解决,不需要任何额外的Jar文件 只需复制以下代码并使用IDE运行它 //Import all needed packages package general ...
- java 压缩文件tar_使用Java API进行tar.gz文件及文件夹压缩解压缩
在java(JDK)中我们可以使用ZipOutputStream去创建zip压缩文件,(参考我之前写的文章 使用java API进行zip递归压缩文件夹以及解压 ),也可以使用GZIPOutputSt ...
- Java压缩文件和文件夹为zip格式
工具类ZipUtils 如下: package utils;import java.io.File; import java.io.FileInputStream; import java.io.IO ...
- java压缩文件(夹)
包含压缩文件或文件夹.压缩多个文件或文件夹.按数量分段压缩文件夹 使用带缓冲的输入流提高压缩速度 package com.client.util;import java.io.*; import ja ...
最新文章
- sourcetree和git同步分支
- ICLR2021 | 利用数据扩充提高蛋白质序列模型的通用性
- uva 707(记忆化搜索)
- vue循环渲染子组件视图不更新问题
- java激励_激励干个人java的不足之处
- 两个网站:借物网,rss交流网站opml.cn
- 【ZooKeeper Notes 6】客户端对zookeeper的操作是不可回退的 [OK]
- 算法:Path Sum(路径总和)
- Android ASM字节码插桩
- 扫描全能王?原来图像技术可以这样子玩
- @PropertySource 注解的使用
- codewars----Exes and Ohs
- 移动流量转赠给好友_中国移动怎样转赠手机流量?月结流量用不完怎办
- sql server 自定义背景、字体及显示行数
- 公众号小额打款验证_已经注册完的公众号如何进行小额打款验证。?
- 使用ffmpeg命令合成m4s音频和视频
- LS1021A 调试问题记录
- webview 上打开QQ客户端,QQ登入后自动打开添加QQ群的方法
- C# 将OFD转为PDF
- 黑客到底可以厉害到什么程度?