专注网页设计制作教程: http://www.update8.com

Java实现zip解压缩目录中的所有文件

时间:2012-01-13 09:26点击: 次 【

Java实现zip解压缩目录中的所有文件

import java.io.*;
import java.util.*;
import java.util.zip.*;
public class FolderUnzip {
private static String sourcepath="D:\\tmp";
private static List<String>folderList=new ArrayList<String>(Arrays.asList(sourcepath));
private static List<String>folderList2=new ArrayList<String>(Arrays.asList("E:\\tt"+File.separator+sourcepath.substring(sourcepath.lastIndexOf(File.separator))));
private static FileInputStream fis = null;
private static FileOutputStream fos = null;
private static ZipOutputStream zipOut = 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]);
				}
			}
		}
	}
}
------分隔线----------------------------