這邊提供了一個 Utility Method 來方便大家處理 unZip 的動作。
廢話不多說,直接看 Code 吧。
public static boolean unZip(File zipFile, File dest) { BufferedOutputStream bos = null; try { FileInputStream fis = new FileInputStream(zipFile); ZipInputStream zipStream = new ZipInputStream(fis); ZipEntry zipEntry; while ((zipEntry = zipStream.getNextEntry()) != null) { String zipEntryName = zipEntry.getName(); // 直接將檔案指向我們希望它解壓的位置 File file = new File(dest, zipEntryName); if (file.exists()) { Log.w("unZip", "Already exist! Skip"); } else { if(zipEntry.isDirectory()) file.mkdirs(); else { final int BUFFER_SIZE = 4096; byte buffer[] = new byte[BUFFER_SIZE]; FileOutputStream fileOutputStream = new FileOutputStream(file); bos = new BufferedOutputStream(fileOutputStream, BUFFER_SIZE); int count; while ((count = zipStream.read(buffer, 0, BUFFER_SIZE)) != -1) { bos.write(buffer, 0, count); } bos.flush(); bos.close(); } } } zipStream.close(); fis.close(); return true; } catch (Exception e) { Log.e("unZip", "unZip fail!!"); e.printStackTrace(); } return false; }Ok, 打完收工。
這段程式碼也是參考一些網路上的朋友們的 Sample Code 寫出來的,取之於網路,就回饋網路吧。
沒有留言:
張貼留言