Android file or folder compression, android folder Compression
Private static final int BUFFER = 1024*1024; /*** compression directory ** @ param File * dir * @ param ZipOutputStream * out * @ param String * basedir */private void compress2Directory (File dir, ZipOutputStream out, String basedir) {if (! Dir. exists () return; File [] files = dir. listFiles (); if (files! = Null & files. length! = 0) {for (int I = 0; I <files. length; I ++) {compress (files [I], out, basedir + dir. getName () + "/");}}} /*** compressed File ** @ param file * File * @ param ZipOutputStream * out * @ param String * basedir */private void compress2File (file File, ZipOutputStream out, String basedir) {if (! File. exists () {return;} BufferedInputStream bis = null; try {bis = new BufferedInputStream (new FileInputStream (file); ZipEntry entry = new ZipEntry (basedir + file. getName (); out. putNextEntry (entry); int count; byte data [] = new byte [BUFFER]; while (count = bis. read (data, 0, BUFFER ))! =-1) {out. write (data, 0, count) ;}} catch (Exception e) {Write. debug ("" + e. getMessage ();} finally {try {bis. close ();} catch (IOException e) {Write. debug ("" + e. getMessage () ;}} public void compress (File file, ZipOutputStream out, String basedir) {if (file. isFile () {this. compress2File (file, out, basedir);} else {this. compress2Directory (file, out, basedir );}}