1 /**
2* 压缩文件或者文件夹 压缩采用gb2312编码,其它编码方式可能造成文件名与文件夹名使用中文的情况下压缩后为乱码。。。
3*
4 * @param source
5*要压缩的文件或者文件夹
6 *建议使用"c:/abc"或者"c:/abc/aaa.txt"这种形式来给定压缩路径
7*使用"c:\\abc" 或者"c:\\abc\\aaa.txt"这种形式来给定路径的话,可能导致出现压缩和解压缩路径意外故障。。。
8* @param zipfilename
9*压缩后的zip文件名称 压缩后的目录组织与windows的zip压缩的目录组织相同。
10*会根据压缩的目录的名称,在压缩文件夹中创建一个改名的根目录, 其它压缩的文件和文件夹都在该目录下依照原来的文件目录组织形式
11* @throws ioexception
12*压缩文件的过程中可能会抛出io异常,请自行处理该异常。
13*/
14public static void zip(string source, string zipfilename)
15throws ioexception {
16zipoutputstream zos = new zipoutputstream(new file(zipfilename));
17
18// 设置压缩的时候文件名编码为gb2312
19zos.setencoding("gb2312");
20// system.out.println(zos.getencoding());
21
22file f = new file(source);
23
24if (f.isdirectory()) {
25// 如果直接压缩文件夹
26zipdir(source, zos, f.getname() + "/");// 此处使用/来表示目录,如果使用\\来表示目录的话,会导致压缩后的文件目录组织形式在解压缩的时候不能正确识别。
27} else {
28// 如果直接压缩文件
29zipdir(f.getpath(), zos, new file(f.getparent()).getname() + "/");
30zipfile(f.getpath(), zos, new file(f.getparent()).getname() + "/"
31+ f.getname());
32}
33
34zos.closeentry();
35zos.close();
36 }
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/