android 關於zip4j的一些天坑

2021-08-26 23:38:50 字數 1855 閱讀 9173

2.解壓過程中,要顯示解壓進度。解壓成功後對swf檔案解密。

3.關於顯示解壓進度的天坑:網上十片有八篇的方法:

/**

* @param zipfile 需要解壓的檔案

* @param filepath 解壓後的檔案目錄

* @param isdeletezip 是否刪除解壓包

* @throws zipexception

*/private void unzipfilewithprogress(file zipfile, string filepath, boolean isdeletezip) throws zipexception

log.e("*****=", "檔案不合法或不存在" + zipfile.getabsolutepath());

return;

}file destdir = new file(filepath); // ��ѹŀ¼

if (destdir.isdirectory() && !destdir.exists())

if (zfile.isencrypted())

// if (totalwork != 0) else

}// 每隔50ms,傳送乙個解壓進度出去

// if (progressmonitor.gettotalwork() > 0) else if (precentdone != 0 && lastprogress != 0) else if (precentdone == 0 && lastprogress != 0) else

log.i("copy materials==", "發現u盤拔出" + usbortfpath);}}

}}}}

} catch (exception e)

} finally }}

});thread.start();

zfile.setruninthread(true); //true 在子執行緒中進行解壓 , false主線程中解壓

zfile.extractall(filepath); //將壓縮檔案解壓到filepath中...

}

1.這個方法有個很大的問題就是,進度不完整,解壓成功的判定有很大的漏洞(當解壓檔案在u盤,解壓過程中拔出u盤竟然會走解壓成功的判定!!!)

progressmonitor.gettotalwork() == progressmonitor.getworkcompleted()
2.尚且沒有好的解決辦法

3.只能採取第二種解壓方法但也有侷限(必須是多個檔案的壓縮包)

/**

* 課件整包,解壓方法

** @param archive

* @param unicode

* @param decompressdir

* @param uihandler

* @param allcount

*/public static void unzipfilebyzip4j(final string archive, final string unicode, final string decompressdir, final handler uihandler, final int allcount, unzipcallback unzipcallback)

listfileheaderlist = zipfile2.getfileheaders();

for (int i = 0; i < fileheaderlist.size(); i++) }}

if(!stopunzip)

} catch (exception e)

}}

zip壓縮檔案處理方案 Zip4j壓縮和解壓

主要特性 使用 zip4j預設採用utf 8編碼,支援中文,也支援密碼和多種壓縮演算法,可以說是功能強大,只是簡單的解壓檔案,按照下面幾步 public static void upzip file zipfile,string dest,string password file destfile ...

zip壓縮檔案處理方案 Zip4j壓縮和解壓

主要特性 使用 zip4j預設採用utf 8編碼,支援中文,也支援密碼和多種壓縮演算法,可以說是功能強大,只是簡單的解壓檔案,按照下面幾步 public static void upzip file zipfile,string dest,string password file destfile ...

使用Zip4j分卷壓縮和解壓縮

net.lingala.zip4j zip4j 1.3.2 分卷壓縮 param srcfiles 要壓縮的檔案絕對路徑列表 支援多個檔案的合併壓縮 param destfile 要壓縮的zip檔名 param passwd 壓縮密碼 param filesize 分卷大小 return 壓縮檔案路...