首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

java 压缩文件夹(包孕内容)

2013-04-07 
java 压缩文件夹(包含内容)import java.io.Fileimport java.io.FileInputStreamimport java.io.FileOutp

java 压缩文件夹(包含内容)

import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.util.zip.ZipEntry;import java.util.zip.ZipOutputStream;public class zip {public static void compressAllZip(String dirpath, String srcName, String targerName) {if (dirpath == null) {System.out.print("no");return;}File baseDir = new File(dirpath);if (!baseDir.exists() || (!baseDir.isDirectory())) {System.out.print("no");return;}String basicRootdir = baseDir.getAbsolutePath();File targerFile = new File(targerName);try {ZipOutputStream out = new ZipOutputStream(new FileOutputStream(targerFile));if (srcName.equals("*")) {zip.commpressDirToZip(basicRootdir, baseDir, out);}else {File file=new File(baseDir,srcName);if(file.isFile()){zip.compressfiletozip(basicRootdir, file, out);}else {zip.commpressDirToZip(basicRootdir, file, out);}}out.close();System.out.print("ok");} catch (Exception e) {// TODO: handle exceptione.printStackTrace();}}private static void commpressDirToZip(String basicrootdir, File dir, ZipOutputStream out) {if (dir.isDirectory()) {File [] files=dir.listFiles();if(files.length==0){ZipEntry entry=new ZipEntry(getfilename(basicrootdir,dir));try {out.putNextEntry(entry);out.closeEntry();} catch (Exception e) {// TODO: handle exception}return ;}for(int i=0;i<files.length;i++){if(files[i].isFile()){zip.compressfiletozip(basicrootdir,files[i],out);}else {zip.commpressDirToZip(basicrootdir, files[i], out);}}}}private static void compressfiletozip(String basicrootdir, File file, ZipOutputStream out) {// TODO Auto-generated method stubFileInputStream in =null;ZipEntry entry=null;byte[] buffer=new byte[4096];int bytes_read;if(file.isFile()){try {in = new FileInputStream(file);entry=new ZipEntry(getfilename(basicrootdir, file));out.putNextEntry(entry);while((bytes_read=in.read(buffer))!=-1){out.write(buffer,0,bytes_read);}out.closeEntry();in.close();} catch (Exception e) {// TODO: handle exception}}}private static String getfilename(String basicrootdir, File file) {// TODO Auto-generated method stubif(!basicrootdir.endsWith(file.separator)){basicrootdir+=file.separator;}String filePathString=file.getAbsolutePath();if(file.isDirectory()){filePathString+="/";}int index=filePathString.indexOf(basicrootdir);return filePathString.substring(index+basicrootdir.length());}public static void main(String[] arge) {String dir="D:/";String srcString="fff/";String hh="D:/test/g.zip";zip.compressAllZip(dir, srcString, hh);}}

热点排行