20210714_删除zip压缩文件中的某个文件的方法,不需要解压


代码如下:依赖jar包自行下载

zip4j-2.8.0.jar

/**
      * 删除指定文件名称的文件
      *
      * @param file
      *            源文件路径
      * @param removeDir
      *            需要删除的文件名称
      * @throws Exception
      *             异常信息
      */
     public  static  void  removeDirFromZipArchive(File file, String removeDir)  throws  Exception {
         ZipFile zipFile =  new  ZipFile(file);
         // 遍历压缩文件中所有的FileHeader, 将指定删除目录下的子文件名保存起来
         @SuppressWarnings ( "unchecked" )
         List<FileHeader> headersList = zipFile.getFileHeaders();
         ArrayList<String> removeHeaderNames =  new  ArrayList<String>();
         for  (FileHeader subHeader : headersList) {
             String subHeaderName = subHeader.getFileName();
             if  (subHeaderName.indexOf(removeDir) != - 1 ) {
                 LOG.info( "需要删除的文件名称为:"  + subHeaderName);
                 removeHeaderNames.add(subHeaderName);
             }
         }
         // 遍历删除指定目录下的所有子文件(所有子文件删除完毕,该目录自动删除)
         for  (String headerNameString : removeHeaderNames) {
             zipFile.removeFile(headerNameString);
         }
     }

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM