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]);
}
}
}
}
}