本帖最后由 msnzt 于 2014-09-23 10:51:06 编辑

解决方案 »

  1.   

    似乎 Zip 似乎只能迭代式访问,没有直接删除某个条目的能力吧?
    所以我们只能重新创建一个临时的 zip 文件啦,不符合条件的原样地写出到临时文件,而符合条件的经过变换之后写入到临时文件,最后把原来的文件关闭并删除再把临时文件改名成原来的 zip 文件。
      

  2.   


    我并非要删除zip中的条目,只是选择性的把zip中符合条件的文件 提取出来生成另外一个新的zip文件,我只所以省略解压到临时文件夹 在打包的步骤 原因是这样的
    一般我们解压其中一个文件 也是通过zipFile.getInputStream(zipEntry);获取zip中 那个zipentry的一个输入流,然后写出到文件
    压缩的时候在吧这个文件封装成输入流 和ZipEntry  在写到ZipOutputStream这个输出流,既然从解压到压缩 都是对流来操作,我何必要加一个解压到临时文件夹的步骤,zipFile.getInputStream(zipEntry);获取的输入流 猜测应该是与你解压成文件后从文件床件的输入流和ZipEntry 应该类型相同吧