Timtower

ZipClass

Jul 13th, 2015
217
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.79 KB | None | 0 0
  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.FileOutputStream;
  4. import java.util.ArrayList;
  5. import java.util.List;
  6. import java.util.zip.ZipEntry;
  7. import java.util.zip.ZipOutputStream;
  8.  
  9. public class ZipClass {
  10.     private List<File> fileList = new ArrayList<File>();
  11.     private File outputFile;
  12.     private File sourceFolder;
  13.     private List<File> ignoreFiles = new ArrayList<File>();
  14.  
  15.  
  16.     public ZipClass(File outputFile, File sourceFolder, List<File> ignoreFiles){
  17.         this.outputFile = outputFile;
  18.         this.sourceFolder = sourceFolder;
  19.         this.ignoreFiles = ignoreFiles;
  20.     }
  21.  
  22.     public File zipit(){
  23.         try{
  24.             outputFile.getParentFile().mkdir();
  25.             listAll(sourceFolder);
  26.             byte[] buffer = new byte[1024];
  27.             FileOutputStream fileOutputStream = new FileOutputStream(outputFile);
  28.             ZipOutputStream zipOutputStream = new ZipOutputStream(fileOutputStream);
  29.             for(File file:fileList){
  30.                 try{
  31.                     ZipEntry zipEntry = new ZipEntry(file.getPath().substring(sourceFolder.getAbsolutePath().length()+1));
  32.                     zipOutputStream.putNextEntry(zipEntry);
  33.  
  34.                     FileInputStream fileInputStream = new FileInputStream(file);
  35.                     int len;
  36.                     while((len=fileInputStream.read(buffer))>0){
  37.                         zipOutputStream.write(buffer,0,len);
  38.                     }
  39.                     fileInputStream.close();
  40.                     zipOutputStream.closeEntry();
  41.                 }catch(Exception e){
  42.                     continue;
  43.                 }
  44.             }
  45.             zipOutputStream.close();
  46.             return outputFile;
  47.         }catch(Exception e){
  48.             e.printStackTrace();
  49.             return null;
  50.         }
  51.     }
  52.  
  53.     public void listAll(File directory){
  54.         if(ignoreFiles.contains(directory)){
  55.             return;
  56.         }
  57.         if(!directory.isDirectory()){
  58.             fileList.add(directory);
  59.         }
  60.         if(directory.isDirectory()){
  61.             try{
  62.                 for(File file:directory.listFiles()){
  63.                     listAll(file);
  64.                 }
  65.             }catch(Exception e){
  66.             }
  67.         }
  68.     }
  69. }
Advertisement
Add Comment
Please, Sign In to add comment