這邊提供了一個 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 寫出來的,取之於網路,就回饋網路吧。
沒有留言:
張貼留言