android中访问zip文件!?求助

tianyatangtang 2016-04-10 11:50:05
我在android的assets中放置了一个zip文件,里面有很多图片,想采用ZipFile zf = new ZipFile(文件路径名);的方式来访问,这样就能知道里面的图片名称,请问如何处理?试过 好几个方法都不对,AssetManager类也只能是建立一个input通道,而不能zipfile,求助
或者放在res下面的方法也试过,没成功
...全文
93 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
用ZipInputStream,参考下面这段代码: public static void unZip(Context context, String assetName,String outputDirectory) throws IOException { //创建解压目标目录 File file = new File(outputDirectory); //如果目标目录不存在,则创建 if (!file.exists()) { file.mkdirs(); } InputStream inputStream = null; //打开压缩文件 inputStream = context.getAssets().open(assetName); ZipInputStream zipInputStream = new ZipInputStream(inputStream); //读取一个进入点 ZipEntry zipEntry = zipInputStream.getNextEntry(); //使用1Mbuffer byte[] buffer = new byte[1024 * 1024]; //解压时字节计数 int count = 0; //如果进入点为空说明已经遍历完所有压缩包中文件和目录 while (zipEntry != null) { //如果是一个目录 if (zipEntry.isDirectory()) { //String name = zipEntry.getName(); //name = name.substring(0, name.length() - 1); file = new File(outputDirectory + File.separator + zipEntry.getName()); file.mkdir(); } else { //如果是文件 file = new File(outputDirectory + File.separator + zipEntry.getName()); //创建该文件 file.createNewFile(); FileOutputStream fileOutputStream = new FileOutputStream(file); while ((count = zipInputStream.read(buffer)) > 0) { fileOutputStream.write(buffer, 0, count); } fileOutputStream.close(); } //定位到下一个文件入口 zipEntry = zipInputStream.getNextEntry(); } zipInputStream.close(); }

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧