`
cnjarchen
  • 浏览: 42204 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

压缩文件夹

阅读更多
//实现功能:将D:/upload文件夹的所有内容压缩到d:/test.zip
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;

import org.apache.tools.zip.ZipEntry;
import org.apache.tools.zip.ZipOutputStream;

public class ZipTest {

    public static void makeZipfile(File file,String dir,ZipOutputStream zout) throws Exception{
         //定义文件位置
        if(dir.length()>0){
            dir = dir + "/" + file.getName();
        }else{
             dir = dir + file.getName();
        }

        if(file.isDirectory()){
           File[] files = file.listFiles();
           int i = 0;
           while(i<files.length){
               makeZipfile(files[i],dir,zout);
                i++;
            }
        }else{
            byte[] data = new byte[256];
            FileInputStream fin = new FileInputStream(file);
            BufferedInputStream bin = new BufferedInputStream(fin,256);
            ZipEntry entry = new ZipEntry(dir);
            zout.putNextEntry(entry);
            int b;
            while((b=bin.read(data,0,256))!=-1){
                zout.write(data,0,b);
            }
            fin.close();
            bin.close();  
       }
    }
    
    public static void main(String[] args){
        try {
                File file = new File("D:/upload");
                FileOutputStream fout = new FileOutputStream("d:/test.zip");
                BufferedOutputStream bout = new BufferedOutputStream(fout);
                ZipOutputStream zout = new ZipOutputStream(bout);
                makeZipfile(file,"",zout);
                zout.close();
                bout.close();
                fout.close();
        }catch (Exception e) {
            e.printStackTrace();
        }
    }

}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics