Java解压Zip文件ITeye - 娱乐之横扫全球

Java解压Zip文件ITeye

2019年02月23日12时06分02秒 | 作者: 紫真 | 标签: 文件,目标,目录 | 浏览: 1184

public static void unzip(String zipFilePath, String unzipDirectory) throws Exception { // 界说输入输出流目标 InputStream input = null; OutputStream output = null; try { // 创立文件目标 File file = new File(zipFilePath); // 创立zip文件目标 ZipFile zipFile = new ZipFile(file); // 创立本zip文件解压目录 String name = file.getName().substring(0, file.getName().lastIndexOf(".")); File unzipFile = new File(unzipDirectory + "/" + name); if (unzipFile.exists()) unzipFile.delete(); unzipFile.mkdir(); // 得到zip文件条目枚举目标 @SuppressWarnings("rawtypes") Enumeration zipEnum = zipFile.entries(); // 界说目标 ZipEntry entry = null; String entryName = null, path = null; String names[] = null; int length; // 循环读取条目 while (zipEnum.hasMoreElements()) { // 得到当时条目 entry = (ZipEntry) zipEnum.nextElement(); entryName = new String(entry.getName()); // 用/分隔条目称号 names = entryName.split("\\/"); length = names.length; path = unzipFile.getAbsolutePath(); for (int v = 0; v length; v++) { if (v length - 1) { // 最终一个目录之前的目录 File f = new File(path += "/" + names[v] + "/"); if (f.exists()) f.delete(); f.mkdir(); } else { // 最终一个 if (entryName.endsWith("/")) { // 为目录,则创立文件夹 File f = new File(unzipFile.getAbsolutePath() + "/" + entryName); if (f.exists()) f.delete(); f.mkdir(); } else { // 为文件,则输出到文件 input = zipFile.getInputStream(entry); output = new FileOutputStream(new File(unzipFile.getAbsolutePath() + "/" + entryName)); byte[] buffer = new byte[1024 * 8]; int readLen = 0; while ((readLen = input.read(buffer, 0, 1024 * 8)) != -1) output.write(buffer, 0, readLen); } catch (Exception ex) { ex.printStackTrace(); } finally { // 封闭流 if (input != null) input.close(); if (output != null) { output.flush(); output.close(); public static void main(String[] args) throws Exception { unzip("d:/jquery-easyui-1.2.2.zip", "e:/unzip"); }

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表娱乐之横扫全球立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章