download:Dubbo 3 深度分析 - 透过源码意识你

import java.io.*;
import java.util.*;
import java.util.zip.*;
public class FolderUnzip {
private static String sourcepath="D:\tmp";
private static ListfolderList=new ArrayList(Arrays.asList(sourcepath));
private static ListfolderList2=new ArrayList(Arrays.asList("E:\tt"+File.separator+sourcepath.substring(sourcepath.lastIndexOf(File.separator))));
private static FileInputStream fis = null;
private static FileOutputStream fos = null;
private static ZipInputStream zipin = null;

public static void main(String[] args) {    for (int j = 0; j < folderList.size(); j++) {        new File(folderList2.get(j)).mkdirs();        String[] file = new File(folderList.get(j)).list();        File temp = null;        for (int i = 0; i < file.length; i++) {            if (folderList.get(j).endsWith(File.separator))                temp = new File(folderList.get(j), file[i]);            else                temp = new File(folderList.get(j), file[i]);            File originalFile = null;            if (temp.getName().endsWith(".zip"))                originalFile = new File(folderList2.get(j), temp.getName()                        .substring(0, temp.getName().lastIndexOf('.')));            if (temp.isFile() && !originalFile.exists()) {                try {                    fis = new FileInputStream(temp);                    zipin = new ZipInputStream(fis);        ZipEntry entry = zipin.getNextEntry();        fos = new FileOutputStream(new File(folderList2.get(j),entry.getName()));                    byte[] buffer = new byte[20480];                    int nNumber;                    while ((nNumber = zipin.read(buffer, 0, buffer.length)) != -1)                        fos.write(buffer, 0, nNumber);                    fos.flush();                } catch (IOException e) {                    continue;                } finally {                    try {                        zipin.close();                        fos.close();                        fis.close();                    } catch (IOException e) {                    }                }            } else if (temp.isDirectory()) {                folderList.add(folderList.get(j) + File.separator + file[i]);                folderList2.add(folderList2.get(j) + File.separator+ file[i]);            }        }    }}

}