2017-07-07 64 views
0

我對Java很新,我試圖使用java提取受密碼保護的ZIP文件,並且我已經編寫了代碼同樣,但我得到了幾個方法,如isEncrypted(),fileHeaderList(),extractFile(), 錯誤我搜索了幾個相關的帖子/問題,但沒有找到確切的解決方案。 你們誰能幫助我在這個問題上我想使用zip4j jar文件提取受密碼保護的ZIP文件,但我得到以下錯誤

import java.util.ArrayList; 
    import java.util.List; 
    import java.util.zip.ZipFile; 
    import net.lingala.zip4j.model.FileHeader; 

    public class Extraction { 
    public Extraction() { 

      try { 
       ZipFile zipFile = new ZipFile("C:\\Users\\rajesh\\Desktop\\ZipFile\\file1.zip"); 

       //Error for isEncrypted() "The method isEncrypted() is undefined for the type ZipFile" 
       if (zipFile.isEncrypted()) { 
             zipFile.setPassword("MYPASS!"); 
       } 

       //The method getFileHeaders() is undefined for the type ZipFile 
       List fileHeaderList = zipFile.getFileHeaders(); 

           for (int i = 0; i < fileHeaderList.size(); i++) { 
        FileHeader fileHeader = (FileHeader)fileHeaderList.get(i); 
     //The method extractFile(FileHeader, String) is undefined for the type ZipFile        
zipFile.extractFile(fileHeader, "C:\\Users\\rajesh\\Desktop\\ZipFile"); 
       } 

      } catch (Exception e) { 
       System.out.println("Please Try Again"); 
      } 

     } 

     public static void main(String[] args) { 
      new Extraction(); 

     } 

    } 
+1

你會得到什麼錯誤? –

+0

嗨Riaan,我編輯了我在代碼中給出錯誤信息的帖子。 –

回答

1

你已經導入java.util.zip.ZipFile,並試圖調用它不存在的方法。您可以通過我上面提供的鏈接找到ZipFile的API。正如你也進口net.lingala.zip4j.model.FileHeader我想你想使用一個不同的zip庫,而不是在java.util.zip找到的。所以爲了解決你的問題,你必須清理你的進口。您很可能需要刪除包java.util.zip的導入語句,並且需要從net.lingala.zip4j.*導入適當的類。

1

要導入java.util.zip.ZipFile,但它聽起來像是你想改用zip4j ZipFile的類。我對該圖書館並不熟悉,但基於在線文檔,我想您可能需要導入net.lingala.zip4j.core.ZipFile

+0

感謝Riaan Nel –

相關問題