001 package railo.commons.io.compress; 002 003 import java.io.IOException; 004 import java.util.zip.ZipFile; 005 import java.util.zip.ZipOutputStream; 006 007 import railo.commons.cli.Command; 008 import railo.commons.io.CompressUtil; 009 import railo.commons.io.res.Resource; 010 011 public final class ZipUtil { 012 013 public static void unzip(Resource zip, Resource dir) throws IOException { 014 if(zip.length()>0 && (dir.exists() || dir.mkdirs())) { 015 if("Mac OS X".equalsIgnoreCase(System.getProperty("os.name"))) { 016 try { 017 //Command.execute("unzip "+zip+" -d "+dir); 018 Command.execute("unzip",new String[]{"-o",zip.getAbsolutePath(),"-d",dir.getAbsolutePath()}); 019 } 020 catch (InterruptedException e) {} 021 return; 022 } 023 CompressUtil.extract(CompressUtil.FORMAT_ZIP, zip, dir); 024 } 025 } 026 027 public static void close(ZipOutputStream zos) { 028 if(zos==null) return; 029 try { 030 zos.close(); 031 } 032 catch (IOException e) {} 033 } 034 035 public static void close(ZipFile file) { 036 if(file==null) return; 037 try { 038 file.close(); 039 } 040 catch (IOException e) {} 041 } 042 }