Android 解压 Zip 压缩文件
生活随笔
收集整理的這篇文章主要介紹了
Android 解压 Zip 压缩文件
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一、AndroidManifest.xml 添加 sd 卡讀寫權(quán)限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>二、方法如下:
public void unzipFile(String zipPtath, String outputDirectory)throws IOException {/*** 解壓assets的zip壓縮文件到指定目錄* @param context上下文對象* @param assetName壓縮文件名* @param outputDirectory輸出目錄* @param isReWrite是否覆蓋* @throws IOException*/Log.i(TAG,"開始解壓的文件: " + zipPtath + "\n" + "解壓的目標(biāo)路徑:" + outputDirectory );// 創(chuàng)建解壓目標(biāo)目錄File file = new File(outputDirectory);// 如果目標(biāo)目錄不存在,則創(chuàng)建if (!file.exists()) {file.mkdirs();}// 打開壓縮文件InputStream inputStream = new FileInputStream(zipPtath); ;ZipInputStream zipInputStream = new ZipInputStream(inputStream);// 讀取一個進(jìn)入點(diǎn)ZipEntry zipEntry = zipInputStream.getNextEntry();// 使用1Mbufferbyte[] buffer = new byte[1024 * 1024];// 解壓時字節(jié)計數(shù)int count = 0;// 如果進(jìn)入點(diǎn)為空說明已經(jīng)遍歷完所有壓縮包中文件和目錄while (zipEntry != null) {Log.i(TAG,"解壓文件 入口 1: " +zipEntry );if (!zipEntry.isDirectory()) { //如果是一個文件// 如果是文件String fileName = zipEntry.getName();Log.i(TAG,"解壓文件 原來 文件的位置: " + fileName);fileName = fileName.substring(fileName.lastIndexOf("/") + 1); //截取文件的名字 去掉原文件夾名字Log.i(TAG,"解壓文件 的名字: " + fileName);file = new File(outputDirectory + File.separator + fileName); //放到新的解壓的文件路徑file.createNewFile();FileOutputStream fileOutputStream = new FileOutputStream(file);while ((count = zipInputStream.read(buffer)) > 0) {fileOutputStream.write(buffer, 0, count);}fileOutputStream.close();}// 定位到下一個文件入口zipEntry = zipInputStream.getNextEntry();Log.i(TAG,"解壓文件 入口 2: " + zipEntry );}zipInputStream.close();Log.i(TAG,"解壓完成");}三、調(diào)用方法:
private String zipPtath = "/storage/emulated/0/testunzip/test.zip";//壓縮包路徑private String unzipPath = "/storage/emulated/0/testunzip/";//解壓路徑unzipFile(zipPtath,unzipPath);總結(jié)
以上是生活随笔為你收集整理的Android 解压 Zip 压缩文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java se7 if_Java SE7
- 下一篇: 2021年编程列入高考_什么是2021年