package com.chentao.MicroMessage.bussiness;

import java.io.File;
import java.util.ArrayList;
import java.util.Collections; import net.lingala.zip4j.core.ZipFile;
import net.lingala.zip4j.exception.ZipException;
import net.lingala.zip4j.model.ZipParameters; public class FileHandler {
//需要压缩的文件的目录 public void zipDemo(String folderPath){
File file = new File(folderPath); //压缩文件的完整的路径名,注意如果zip文件的母文件夹不存在,那么创建zip文件的时候会抛出系统找不到指定路径的异常,所以,最好检验一下父路径是否存在。
String zipPath = "D:\\tmp\\test.zip"; ArrayList<File> temp = new ArrayList<File>();
if(file.isDirectory()){
File [] files = file.listFiles();
Collections.addAll(temp, files);
}else{
Collections.addAll(temp, file);
} //设定压缩文件的参数:初始化即可,如果不涉及则默认
ZipParameters zipParameters = new ZipParameters(); try {
//创建zipFile,注意如果该zipfile已经存在,那么再往里执行虚拟机貌似会卡死,所以最好在这之前做一下校验或者命名唯一确保不存在同名zip文件。
ZipFile zipFile = new ZipFile(zipPath);
zipFile.addFiles(temp, zipParameters);
} catch (ZipException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} /**
* @param path 需要打包的文件或者路径
* @return String 是生成的zip文件的全路径
*/
public static String zip(String path){
String seperator = "\\";
File file = new File(path);
String zipFilePath = null;
ArrayList<File> fileList = new ArrayList<File>();
if(file.isDirectory()){
zipFilePath = path+seperator+file.getName()+".zip";
File [] fileArray = file.listFiles();
Collections.addAll(fileList, fileArray);
}else{
zipFilePath = file.getParent()+seperator+file.getName()+".zip";
Collections.addAll(fileList, file);
}
try {
ZipFile zipFile = new ZipFile(zipFilePath);
ZipParameters zipParameters = new ZipParameters();
zipFile.addFiles(fileList, zipParameters);
} catch (ZipException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return zipFilePath; } }

最简单用法为zipDemo方法,zip()方法对参数进行了处理。

    public static String unZip(String path) throws Exception{
String folderPath = "D:\\tmp\\extract"; //压缩文件的制定存放位置,该文件夹如果为空,则会自动创建
ZipFile zipFile = new ZipFile(path);
zipFile.setFileNameCharset("UTF-8"); zipFile.extractAll(folderPath);
return folderPath; }

相应的解压缩的方式。

创建根据路径创建zipfile,使用zipfile的extrctAll方法即可。

Zip4J最简单用法的更多相关文章

  1. CATransition(os开发之画面切换) 的简单用法

    CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...

  2. jquery.validate.js 表单验证简单用法

    引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...

  3. NSCharacterSet 简单用法

    NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...

  4. [转]Valgrind简单用法

    [转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...

  5. Oracle的substr函数简单用法

    substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H'  *从字符串第一个字符开始截取长度为1的字符串 subst ...

  6. Ext.Net学习笔记19:Ext.Net FormPanel 简单用法

    Ext.Net学习笔记19:Ext.Net FormPanel 简单用法 FormPanel是一个常用的控件,Ext.Net中的FormPanel控件同样具有非常丰富的功能,在接下来的笔记中我们将一起 ...

  7. TransactionScope简单用法

    记录TransactionScope简单用法,示例如下: void Test() { using (TransactionScope scope = new TransactionScope()) { ...

  8. WPF之Treeview控件简单用法

    TreeView:表示显示在树结构中分层数据具有项目可展开和折叠的控件 TreeView 的内容是可以包含丰富内容的 TreeViewItem 控件,如 Button 和 Image 控件.TreeV ...

  9. listActivity和ExpandableListActivity的简单用法

    http://www.cnblogs.com/limingblogs/archive/2011/10/09/2204866.html 今天自己简单的总结了listActivity和Expandable ...

随机推荐

  1. Chapter 7:Linking

    概述: 在linux上,从c源码到可执行文件主要需要经历translator(compiler.assembler)生成object file,再经由linker连接成executable objec ...

  2. 在ERP中定义用户时报错:SqlDateTime 溢出。必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间

    在ERP中定义用户时.   报错: SqlDateTime 溢出.必须介于 1/1/1753 12:00:00 AM 和 12/31/9999 11:59:59 PM 之间. 原因分析: ①没有正确初 ...

  3. jquery.form.js+jquery.validation.js实现表单校验和提交

      一.jquery引用 主要用到3个js: jquery.js jquery.form.js jquery.validation.js 另外,为了校验结果提示本地化,还需要引入jquery.vali ...

  4. 《java.util.concurrent 包源码阅读》11 线程池系列之ThreadPoolExecutor 第一部分

    先来看ThreadPoolExecutor的execute方法,这个方法能体现出一个Task被加入到线程池之后都发生了什么: public void execute(Runnable command) ...

  5. 这些工具对html5开发有很大帮助

    如今H5已经在IT这块很热门,所以也就有越来越多的人自学或是报名培训班学习H5,今天写一篇关于当下html5开发工具有哪些?哪个更好一些? 浅谈2017年html5开发工具哪个好: 1.Adobe D ...

  6. Git详解及 github与gitlab使用

    1.1 关于版本控制 1.1.1 本地版本控制 本地版本控制系统 许多人习惯用复制整个项目目录的方式来保存不同的版本,或许还会改名加上备份时间以示区别.这么做唯一的 好处就是简单,但是特别容易犯错.有 ...

  7. Android 异步消息处理机制前篇(二):深入理解Message消息池

    版权声明:本文出自汪磊的博客,转载请务必注明出处. 上一篇中共同探讨了ThreadLocal,这篇我们一起看下常提到的Message消息池到底是怎么回事,废话少说吧,进入正题. 对于稍有经验的开发人员 ...

  8. underscore源码解析(一)

    留存root // Establish the root object, `window` (`self`) in the browser, `global` // on the server, or ...

  9. 异步编程Async/await关键字

    异步编程Async \await 关键字在各编程语言中的发展(出现)纪实. 时间 语言版本 2012.08.15 C#5.0(VS2012) 2015.09.13 Python 3.5 2016.03 ...

  10. JavaWeb核心技术学习 - 1.从JDBC说起

    作者:java1to3链接:http://www.cnblogs.com/java1to3/著作权归作者所有.未经作者本人同意,禁止一切转载.商业或非商业转载请联系作者获得授权并请注明出处. ・JDB ...