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 }