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 ...
随机推荐
- DLL的导出函数重定向机制
曾经,调试时跟进HeapAlloc,结果发现直接进入到ntdll的RtlAllocateHeap中,感到很有趣,就使用Dependency Walker查看kernel32.dll的导出函数,结果发现 ...
- HTML5开发必备的工具
现在除了移动APP开发之外,比较火的就是html5开发了,现阶段的HTML5被看做是Web开发者创建流行web应用的利器,增加了对视频和Canvas2D的支持,它的优点就是可以跨平台使用,比如你是开发 ...
- C# tostring
GUID: 即Globally Unique Identifier(全球唯一标识符) 也称作 UUID(Universally Unique IDentifier) . GUID是一个通过特定算法产生 ...
- c# winform treelistview的使用(treegridview)
TreeView控件显示的内容比较单一,如果需要呈现更详细信息TreeListView是一个不错的选择. 先看效果: 首先需要引用文件System.Windows.Forms.TreeListView ...
- nginx的基础应用(续)
nginx的基础应用(续) 一.简介 上一篇文章我们介绍了nginx的基础应用,其中讲到了nginx作为代理服务器的使用,但是漏了一个重要的,也是使用非常普遍的特性--负载均衡.今天,我们将这段内容补 ...
- 禁止mui事件tab切换内容左右滑动
mui('.mui-slider').slider().setStopped(true);
- 网页设计——2. html入门
开始正式的课程讲解了,首先来看看课程体系: Java EE(java 企业应用程序版本) java2 有三个版本:J2 SE(标准版),J2 EE(企业版).J2 ME(微缩版). 我们要掌握J2EE ...
- Windows中根据端口定位持有者程序
之前被一个问题所困扰, 电脑过一段时间就无法上网, 查询netstat, 会有大量的端口被占用, 但是看不出来是哪个程序开启的 ( 最终定位到是ADSafe搞得鬼 ) . 后来发现几个命令可以根据端口 ...
- python学习第一天基础篇
学习背景:决定开始学习python之前,因为公司基本都是微软系统,所以很少碰到linux系统,机缘巧合接到了一个项目是使用shell对mysql进行backup,因为公司唯一的系统工程师是微软在行,对 ...
- Linux高性能server编程——信号及应用
信号 信号是由用户.系统或者进程发送给目标进程的信息.以通知目标进程某个状态的改变或系统异常. Linux信号可由例如以下条件产生: 对于前台进程.用户能够通过输入特殊的终端字符来给它发送信号. ...