Android解压缩zip的实现
16lz
2021-12-04
android 解压缩zip包,需要在menifest.xml中加入sdcard读写权限,如下:
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
实现代码:
/**
* 解压缩文件到指定的目录.
*
* @param unZipfileName 需要解压缩的文件
* @param mDestPath 解压缩后存放的路径
*/
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
实现代码:
/**
* 解压缩文件到指定的目录.
*
* @param unZipfileName 需要解压缩的文件
* @param mDestPath 解压缩后存放的路径
*/
public static void unZip(String unZipfileName, String mDestPath) { if (!mDestPath.endsWith("/")) { mDestPath = mDestPath + "/"; } FileOutputStream fileOut = null; ZipInputStream zipIn = null; ZipEntry zipEntry = null; File file = null; int readedBytes = 0; byte buf[] = new byte[4096]; try { zipIn = new ZipInputStream(new BufferedInputStream(new FileInputStream(unZipfileName))); while ((zipEntry = zipIn.getNextEntry()) != null) { file = new File(mDestPath + zipEntry.getName()); if (zipEntry.isDirectory()) { file.mkdirs(); } else { // 如果指定文件的目录不存在,则创建之. File parent = file.getParentFile(); if (!parent.exists()) { parent.mkdirs(); } fileOut = new FileOutputStream(file); while ((readedBytes = zipIn.read(buf)) > 0) { fileOut.write(buf, 0, readedBytes); } fileOut.close(); } zipIn.closeEntry(); } } catch (IOException ioe) { ioe.printStackTrace(); } }
更多相关文章
- Android实战技巧之二十二:Android(安卓)5.1 SDK下载与配置
- android中怎么把控件隐藏
- Android:控件的隐藏显示失效了
- android分割线
- Android(安卓)SDK 更新失败解决 Failed to fetch URL https://dl
- Android下修改ImageButton样式
- TextView跑马灯效果
- Android文件的读写
- Android(安卓)xml资源文件中@、@android:type、@*、?、@+引用写法