1 /** 2 * 解压缩文件到指定的目录. 3 * 4 * @param unZipfileName 5 * 需要解压缩的文件(带路径) 6 * @param mDestPath 7 * 解压缩后存放的路径 8 **/ 9 public static void unZip(String unZipfileName, String mDestPath) {10 if (!mDestPath.endsWith("/")) {11 mDestPath = mDestPath + "/";12 }13 FileOutputStream fileOut = null;14 ZipInputStream zipIn = null;15 ZipEntry zipEntry = null;16 File file = null;17 int readedBytes = 0;18 byte buf[] = new byte[4096];19 try {20 zipIn = new ZipInputStream(new BufferedInputStream(21 new FileInputStream(unZipfileName)));22 while ((zipEntry = zipIn.getNextEntry()) != null) {23 file = new File(mDestPath + zipEntry.getName());24 if (zipEntry.isDirectory()) {25 file.mkdirs();26 } else {27 // 如果指定文件的目录不存在,则创建之.28 File parent = file.getParentFile();29 if (!parent.exists()) {30 parent.mkdirs();31 }32 fileOut = new FileOutputStream(file);33 while ((readedBytes = zipIn.read(buf)) > 0) {34 fileOut.write(buf, 0, readedBytes);35 }36 fileOut.close();37 }38 zipIn.closeEntry();39 }40 } catch (IOException ioe) {41 ioe.printStackTrace();42 43 }44 }