Android實現(xiàn)文件或文件夾壓縮成.zip格式壓縮包
更新時間:2018年07月25日 10:48:03 作者:yushuangping
這篇文章主要為大家詳細介紹了Android實現(xiàn)文件或文件夾壓縮成.zip格式壓縮包,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了Android壓縮文件和文件夾的方法,供大家參考,具體內(nèi)容如下
/** * 壓縮文件和文件夾 * * @param srcFileString 要壓縮的文件或文件夾 * @param zipFileString 壓縮完成的Zip路徑 * @throws Exception */ public static void ZipFolder(String srcFileString, String zipFileString) throws Exception { //創(chuàng)建ZIP ZipOutputStream outZip = new ZipOutputStream(new FileOutputStream(zipFileString)); //創(chuàng)建文件 File file = new File(srcFileString); //壓縮 LogUtils.LOGE("---->"+file.getParent()+"==="+file.getAbsolutePath()); ZipFiles(file.getParent()+ File.separator, file.getName(), outZip); //完成和關(guān)閉 outZip.finish(); outZip.close(); } /** * 壓縮文件 * * @param folderString * @param fileString * @param zipOutputSteam * @throws Exception */ private static void ZipFiles(String folderString, String fileString, ZipOutputStream zipOutputSteam) throws Exception { LogUtils.LOGE("folderString:" + folderString + "\n" + "fileString:" + fileString + "\n=========================="); if (zipOutputSteam == null) return; File file = new File(folderString + fileString); if (file.isFile()) { ZipEntry zipEntry = new ZipEntry(fileString); FileInputStream inputStream = new FileInputStream(file); zipOutputSteam.putNextEntry(zipEntry); int len; byte[] buffer = new byte[4096]; while ((len = inputStream.read(buffer)) != -1) { zipOutputSteam.write(buffer, 0, len); } zipOutputSteam.closeEntry(); } else { //文件夾 String fileList[] = file.list(); //沒有子文件和壓縮 if (fileList.length <= 0) { ZipEntry zipEntry = new ZipEntry(fileString + File.separator); zipOutputSteam.putNextEntry(zipEntry); zipOutputSteam.closeEntry(); } //子文件和遞歸 for (int i = 0; i < fileList.length; i++) { ZipFiles(folderString+fileString+"/", fileList[i], zipOutputSteam); } } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android編程實現(xiàn)獲取當(dāng)前系統(tǒng)語言及地區(qū)并更改語言的方法
這篇文章主要介紹了Android編程實現(xiàn)獲取當(dāng)前系統(tǒng)語言及地區(qū)并更改語言的方法,涉及Android針對系統(tǒng)語言及地區(qū)的獲取與設(shè)置相關(guān)操作技巧,需要的朋友可以參考下2017-10-10Android屏幕旋轉(zhuǎn) 處理Activity與AsyncTask的最佳解決方案
運行時變更就是設(shè)備在運行時發(fā)生變化(例如屏幕旋轉(zhuǎn)、鍵盤可用性及語言)。發(fā)生這些變化,Android會重啟Activity,這時就需要保存activity的狀態(tài)及與activity相關(guān)的任務(wù),以便恢復(fù)activity的狀態(tài)。為此,google提供了三種解決方案,本文將對這三種方案進行逐一介紹。2016-12-12Android中NavigationView的使用與相關(guān)問題解決
大家都知道NavigationView的引入讓 Android側(cè)邊欄實現(xiàn)起來相當(dāng)方便,最近公司項目中也使用這個新的控件完成了側(cè)邊欄的改版。在使用過程中遇到一些問題所以記錄一下。本文分為兩個部分,一是基本使用,二是相關(guān)問題的解決,感興趣的朋友們下面來一起看看吧。2016-10-10Android ScrollView實現(xiàn)反彈效果的實例
這篇文章主要介紹了 Android ScrollView實現(xiàn)反彈效果的實例的相關(guān)資料,這里自定義scrollview 并實現(xiàn)反彈效果,需要的朋友可以參考下2017-07-07Flutter?Android多窗口方案落地實戰(zhàn)
這篇文章主要為大家介紹了Flutter?Android多窗口方案落地實戰(zhàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02Android studio利用gradle打jar包并混淆的方法詳解
昨天準備把寫好的代碼使用gradle打jar包出來,并打算加混淆。打jar包容易,結(jié)果在混淆上走了彎路。所以這篇文章主要介紹了關(guān)于Android studio利用gradle打jar包并混淆的方法,需要的朋友可以參考下。2017-03-03