package utilities; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayList; import java.util.Enumeration; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; import org.apache.commons.io.FilenameUtils; public class TestClass { public static String folderforzips; public static String newzipfolder; public static void main(String args[]) throws Exception { // String folder = utilities.BrowserDialogs.chooseFolder(); String folder = "C://FileSample//zipSample"; //hard coded if (folder != null) { ArrayList<File> files = utilities.ListsFiles.getPaths(new File(folder), new ArrayList<File>()); folderforzips = utilities.FolderMethods.createnewFolder(); for (int i = 0; i < files.size(); i++) { String extension = FilenameUtils.getExtension(files.get(i).toString()).toLowerCase(); if (extension.equals("zip")) { String dirname = files.get(i).getName(); int len = dirname.length()-4; newzipfolder = dirname.substring(0,len); utilities.FolderMethods.createnewFolderfromString(newzipfolder ); ZipFile zf = new ZipFile(files.get(i)); for (Enumeration<? extends ZipEntry> e = zf.entries(); e.hasMoreElements();) { try { ZipEntry entry = e.nextElement(); utilities.ListsFiles.ziptofile (entry, zf); // ziptofile(entry, zf); } catch (Exception exc) { System.out.println(exc); } } } } } } private static void ziptofile(ZipEntry entry, ZipFile zf) throws IOException { //This method works! byte[] buffer = new byte[ 0xFFFF ]; InputStream in = zf.getInputStream(entry); String extension = FilenameUtils.getExtension(entry.toString()).toLowerCase(); File newfile = new File ("D://Test//test." + extension); OutputStream os = new FileOutputStream (newfile); for ( int len; (len = in.read(buffer)) != -1; ) os.write( buffer, 0, len ); in.close(); os.close(); } }