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