将代码过程较好的代码段备份一下,下边资料是关于java压缩指定目录下的所有文件和文件夹的代码,希望对码农有帮助。

String sourceDir="E:\test";
int parentDirectoryLen=sourceDir.lastIndexOf(File.separator)+1;
File[] copyfoldersList = new File(sourceDir).listFiles();
FileOutputStream fos = new FileOutputStream("E:\test.zip");
ZipOutputStream zipOut = new ZipOutputStream(fos);
for (int k = 0; k < copyfoldersList.length; k++) {
if (copyfoldersList[k].isDirectory()) {
LinkedList<String> copysourcepath = new LinkedList<String>(Arrays.asList(copyfoldersList[k].getAbsolutePath()));
while (copysourcepath.size() > 0) {
File folders = new File(copysourcepath.peek());
String[] file = folders.list();
for (int i = 0; i < file.length; i++) {
File ff = new File(copysourcepath.peek(), file[i]);
if (ff.isFile()) {
FileInputStream fis =null;
try {
fis = new FileInputStream(ff);
ZipEntry entry = new ZipEntry(ff.getAbsoluteFile().substring(parentDirectoryLen));
zipOut.putNextEntry(entry);
int nNumber;
byte[] buffer = new byte[Long.MIN_VALUE];
while ((nNumber = fis.read(buffer)) != -1)
zipOut.write(buffer, 0, nNumber);
} catch (IOException e) {
e.printStackTrace();
zipOut.close();
fos.close();
}finally{
try {
fis.close();
} catch (IOException e) {}
}
} else if (ff.isDirectory()) {
for (File f : temp.listFiles()) {
if (f.isDirectory())
copysourcepath.add(f.getPath());
else if (f.isFile()) {
FileInputStream fis =null;
try {
fis = new FileInputStream(f);
ZipEntry entry = new ZipEntry(f.getAbsoluteFile().substring(parentDirectoryLen));
zipOut.putNextEntry(entry);
int nNumber;
byte[] buffer = new byte[Long.MIN_VALUE];
while ((nNumber = fis.read(buffer)) != -1)
zipOut.write(buffer, 0, nNumber);
} catch (IOException e) {
e.printStackTrace();
zipOut.close();
fos.close();
}finally{
try {
fis.close();
} catch (IOException e) {}
}
}
}
}
}
copysourcepath.removeFirst();
}
}
}
try {
zipOut.flush();
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
zipOut.close();
fos.close();
} catch (IOException e) {}
}

java压缩指定目录下的所有文件和文件夹的代码的更多相关文章

  1. JAVA输出指定目录下的子目录和子文件

    题目:给定一个目录,要求输出这个目录下面的子目录和子文件 逻辑: 先判断给定的是不是一个合法的目录,如果不是,则提示给定错误 如果是目录,那么使用File.listFile()获得这个目录下文件名的数 ...

  2. Java 读取指定目录下的文件名和目录名

    需求:读取指定目录下的文件名和目录名 实现如下: package com.test.common.util; import java.io.File; public class ReadFile { ...

  3. 运维笔记--Linux查找指定目录下某段时间的文件

    查找指定目录下,60天之前的文件:find /mnt/xml_data -mtime +60 -name "*.xml" 找到并统计数量:find /mnt/xml_data -m ...

  4. [bash]查找指定目录下符合格式的txt文件

    需求: 查找指定目录下符合yyyy-MM-dd(-b)NNN.txt格式的文件,如“2020-03-22-b888.txt” 目标目录内容: [root@localhost bashs]# ll /r ...

  5. java 遍历指定目录下的文件夹并查找包含指定关键字的文件

    输入指定关键字,在制定目录中查找包含关键字的文件,返回包含指定关键字的文件路径. package net.xsoftlab.baike; import java.io.File; import jav ...

  6. JAVA 删除指定目录下指定文件类型的所有文件

    public class DelFile { public static void main(String[] args) { File file = new File("C:\\DETEC ...

  7. 运维笔记--Linux查找指定目录下包含某字符串的文件

    待整理: 参考:http://blog.sina.com.cn/s/blog_53d496960102xg5c.html 例: find /home/logstash/ -type f | xargs ...

  8. Zip文件压缩(加密||非加密||压缩指定目录||压缩目录下的单个文件||根据路径压缩||根据流压缩)

    1.写入Excel,并加密压缩.不保存文件 String dcxh = String.format("%03d", keyValue); String folderFileName ...

  9. TDirectory.GetFileSystemEntries获取指定目录下的目录和文件

    使用函数: System.IOUtils.TDirectory.GetFileSystemEntries 所有重载: class function GetFileSystemEntries(const ...

随机推荐

  1. .NETCore 基于 dbfirst 体验快速开发项目

    简介 今天出场是进化了多年的生成器工具,根据数据库结构(表.视图.存储过程.外键.各种类型.备注)快速生成一个项目,并自带后台管理系统.篇幅有限本文只讲解快速开发的使用过程,具体开发中的细节日后有空再 ...

  2. 那些年我们一起踩过的Dubbo"坑"

    前言 微服务架构在如今的9102年已经不是什么新鲜的话题了,但是怎么做好微服务架构,却又是一个永恒的话题.比如服务粒度的划分,怎么控制好粗细?服务划分后,对于项目的部署会有什么改变?...  这会是一 ...

  3. Windows核心编程第二章,字符串的表示以及宽窄字符的转换

    目录 Windows核心编程,字符串的表示以及宽窄字符的转换 1.字符集 1.1.双字节字符集DBCS 1.2 Unicode字符集 1.3 UTF-8编码 1.4 UTF - 32编码. 1.5 U ...

  4. 腾讯视频国际版(Android)电量测试方法研究与总结

    本文由云+社区发表 作者:腾讯移动品质中心TMQ 1.研究背景: 在2017年Google I/O大会上,Google发布了Google Play管理中心的新功能:Android vitals.当ap ...

  5. Docker最全教程之使用TeamCity来完成内部CI、CD流程(十六)

    本篇教程主要讲解基于容器服务搭建TeamCity服务,并且完成内部项目的CI流程配置.教程中也分享了一个简单的CI.CD流程,仅作探讨.不过由于篇幅有限,完整的DevOps,我们后续独立探讨. 为了降 ...

  6. 【转载】C#工具类:实现文件操作File的工具类

    在应用程序的开发中,文件操作的使用基本上是必不可少的,FileStream类.StreamWriter类.Directory类.DirectoryInfo类等都是文件操作中时常涉及到的类,我们可以通过 ...

  7. Kafka系列2-producer和consumer报错

    1. 使用127.0.0.1启动生产和消费进程: 1)启动生产者进程: bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --top ...

  8. #if和#ifdef的区别

    学习STM32偶然发现:在Keil中直接预先定义宏USE_STDPERIPH_DRIVER,但是却没有指定宏的值.而在头文件中判断用的是如下代码: #ifdef USE_STDPERIPH_DRIVE ...

  9. C语言中#undef作用

    #undef 作用:取消定义的宏 指令格式:#undef 标识符 1 #include <stdio.h> 2 3 #define MAX 5 4 5 int main() { 6 pri ...

  10. 第16次CCF CSP认证-第5题-317 号子任务(subtask317)-图论最短路径

    [题目背景]“你在平原上走着走着,突然迎面遇到一堵墙,这墙向上无限高,向下无限深,向左无限远,向右无限远,这墙是什么?”——<流浪地球>原著我们带着地球去流浪了,为了处理流浪过程中可能会发 ...