簡體   English   中英

TrueZip-如何解壓縮內部jar / zip文件而不將其擴展為目錄?

[英]TrueZip - How to decompress inner jar/zip files without expanding them as directories?

我正在使用TrueZip 7創建tzp文件,並使用cp_rp方法一次將所有目錄內容添加到tzp文件。

之后,我嘗試將tzp文件的所有內容提取到目標目錄。 但是,調用:

zipFile = new TFile("test.zip");
public void extract(TFile file){
  for (TFile iFile : zipFile.listFiles()){
    if(iFile.isDirectory()){
       extract(iFile);
    }else{
       File output = new File(iFile.getPath());
       iFile.mv(output);
    }
  }
}

失敗並發生錯誤: java.io.IOException:[path] \\ test.zip \\ Myjar.jar(目標已經存在) 如果我使用cp而不是mv,則錯誤為[path] \\ test.zip \\ Myjar.jar(包含在[path] \\ test.zip \\ Myjar.jar中)

問題似乎還在於TrueZip將zip和jars識別為目錄和存檔,因此在它們上執行isDirectory()時,此操作成功完成,並且執行listFiles()返回其中包含的所有文件,因此在上運行cp()文件以遞歸方式將所有jar / zip內容復制為目錄。

提取這些存檔文件而不擴展它們的正確方法是什么?

可以使用一個方法調用將存檔文件提取到目錄中:

TFile archive = new TFile("archive.zip");
TFile directory = new TFile("directory");
TFile.cp_rp(archive, directory, TArchiveDetector.NULL, TArchiveDetector.NULL);

訣竅是在遍歷目錄樹時使用TArchiveDetector.NULL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM