[英]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.