Zip4J最简单用法
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最简单用法的更多相关文章
- CATransition(os开发之画面切换) 的简单用法
CATransition 的简单用法 //引进CATransition 时要添加包“QuartzCore.framework”,然后引进“#import <QuartzCore/QuartzCo ...
- jquery.validate.js 表单验证简单用法
引入jquery.validate.js插件以及Jquery,在最后加上这个插件的方法名来引用.$('form').validate(); <!DOCTYPE html PUBLIC " ...
- NSCharacterSet 简单用法
NSCharacterSet 简单用法 NSCharacterSet其实是许多字符或者数字或者符号的组合,在网络处理的时候会用到 NSMutableCharacterSet *base = [NSMu ...
- [转]Valgrind简单用法
[转]Valgrind简单用法 http://www.cnblogs.com/sunyubo/archive/2010/05/05/2282170.html Valgrind的主要作者Julian S ...
- Oracle的substr函数简单用法
substr(字符串,截取开始位置,截取长度) //返回截取的字 substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串 subst ...
- Ext.Net学习笔记19:Ext.Net FormPanel 简单用法
Ext.Net学习笔记19:Ext.Net FormPanel 简单用法 FormPanel是一个常用的控件,Ext.Net中的FormPanel控件同样具有非常丰富的功能,在接下来的笔记中我们将一起 ...
- TransactionScope简单用法
记录TransactionScope简单用法,示例如下: void Test() { using (TransactionScope scope = new TransactionScope()) { ...
- WPF之Treeview控件简单用法
TreeView:表示显示在树结构中分层数据具有项目可展开和折叠的控件 TreeView 的内容是可以包含丰富内容的 TreeViewItem 控件,如 Button 和 Image 控件.TreeV ...
- listActivity和ExpandableListActivity的简单用法
http://www.cnblogs.com/limingblogs/archive/2011/10/09/2204866.html 今天自己简单的总结了listActivity和Expandable ...
随机推荐
- P1132 数字生成游戏
题目请见:传送门 以下为题解,直接从洛谷上搬过来的,还专门改了markdown,(汗) 宽搜 with 一些技巧 由于查询量很大,所以要预先处理所有答案 预处理当然是用BFS,并同时进行delete, ...
- 字符串的缺点以及StringBuilder
字符串的缺点: String 对象是不可改变的.每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需要对字符串执行重复修改的 ...
- .net 系列:并发编程之一 并发编程的初步理论
一.关于并发编程的几个误解 1)并发就是多线程 实际上多线程只是并发编程的一种形式而已,在C#中还有很多其他的并发编程技术,包括异步编程,并行编程,TPL数据流,响应式编程等. 2)只有大型服务器才 ...
- nginx反向代理node.js获取客户端IP
使用Nginx做node.js程序的反向代理,会有这么一个问题:在程序中获取的客户端IP永远是127.0.0.1 如果想要拿到真实的客户端IP改怎么办呢? 一.首先配置Nginx的反向代理 proxy ...
- java agent
cmd使用java -help可以看到关于agent参数: -agentlib:<libname>[=<选项>] 加载本机代理库 <libname>, 例如 -ag ...
- 【原创】1、简单理解微信小程序
先看下网站的运行方式: 而小程序是这样: what?就这样?是的,就这样.那小程序官方提供的Wafer,还有Wafer2...想太多了,抛弃它们吧.不应当为了解决一个简单的旧问题而去整一个复杂的新问题 ...
- CountDownLatch的实现原理
CountDownLatch是java并发包中辅助并发的工具类,目的是让并发运行的代码在某一个执行点阻塞,直到所有条件都满足,这里的条件就是调用countDown()方法,有点类似计数器的功能. 用法 ...
- stm32串口接收中断协议解析
借鉴了文章:<stm32串口中断接收方式详细比较> 文章地址:http://blog.csdn.net/kevinhg/article/details/40186169 串口的配置这里不做 ...
- Java进阶(七)正确理解Thread Local的原理与适用场景
原创文章,始自发作者个人博客,转载请务必将下面这段话置于文章开头处(保留超链接). 本文转发自技术世界,原文链接 http://www.jasongj.com/java/threadlocal/ Th ...
- iKcamp团队制作|基于Koa2搭建Node.js实战(含视频)☞ 中间件用法
中间件用法--讲解 Koa2 中间件的用法及如何开发中间件