/** * 解壓縮一個檔案 * * @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(); } }