/**
* 解压缩一个文件
*
* @param zipFile
* 要解压的压缩文件
* @param folderPath
* 解压缩的目标目录
* @param folderName
* 解压缩的文件夹名称
* @throws IOException
* 当解压缩过程出错时抛出
*/
public static void upZipFile(File zipFile, String folderPath,
String folderName) throws ZipException, IOException {
File desDir = new File(folderPath);
if (!desDir.exists()) {
desDir.mkdirs();
}
ZipFile zf = new ZipFile(zipFile);
String fileName = "";
for (Enumeration<?> entries = zf.entries(); entries.hasMoreElements();) {
ZipEntry entry = ((ZipEntry) entries.nextElement());
InputStream in = zf.getInputStream(entry);
fileName = entry.getName().substring(
entry.getName().indexOf('/') + 1);
String str = folderPath + File.separator + folderName + "/"
+ fileName;
str = new String(str.getBytes("8859_1"), "GB2312");
File desFile = new File(str);
if (!desFile.exists()) {
File fileParentDir = desFile.getParentFile();
if (!fileParentDir.exists()) {
fileParentDir.mkdirs();
}
desFile.createNewFile();
}
OutputStream out = new FileOutputStream(desFile);
byte buffer[] = new byte[1024];
int realLength;
while ((realLength = in.read(buffer)) > 0) {
out.write(buffer, 0, realLength);
}
in.close();
out.close();
}
}