2015-01-21 64 views
2

我想從zip文件中刪除文件,而無需在android中進行解壓縮。我第一次使用下面的代碼如何在Android中刪除zip文件中的文件

Path zipFilePath = Paths.get(filePaths); //gave the path of the zip with zip file name 
try(FileSystem fs = FileSystems.newFileSystem(zipFilePath, null)){ 
    Path pathInZipfile = fs.getPath(reVsl3); //reVsl3 String which holds the name of the file to be deleted in the zip file 
    zipDelLoc=reVsl3; //just assigning it for future use 
     System.out.println("About to delete an entry from ZIP File" + pathInZipfile.toUri()); 
     // Execute Delete 
     Files.delete(pathInZipfile); 
     System.out.println("File successfully deleted"); 
} 
catch (IOException e) { 
    System.out.println(e+"Error here?"); 
} 

這是在NetBeans可以正常使用,但它不是在ADT工作做到了與Java,在logcat的

java.lang.NoClassDefFoundError: java.nio.file.Paths

Isearched發生了用於分辨率錯誤並得到了一個暗示,Android沒有'java.nio.file.Paths'這個東西, 我正在尋找一個替代解決方案可以zip4j或TrueZip將在這裏做詭計,

我試過用truezip,b使用此代碼

TFile archive = new TFile("archive.zip"); 
for (String member : archive.list()) 
System.out.println(member); 

但是archive.list()返回null,但是archive.length正在返回其正確的文件大小。

我不知道我在這裏做錯了什麼,我在一個罐子裏下載了truezip 7.7。但我得到一個錯誤,當我給這個import de.schlichtherle.io.File

請幫

您正在使用什麼版本的Java
+0

我猜你爲TrueZIP下載了錯誤的JAR文件。請查看https://truezip.java.net/kick-start/no-maven.html。另請注意,TrueZIP處於維護模式。對於新項目,您應該使用TrueVFS。相應的頁面是https://truevfs.java.net/kick-start/no-maven.html。 – 2015-01-22 12:13:12

回答

0

仔細檢查您的導入。它應該是類似de.schlichtherle.truezip.nio.file.TPath;的東西在使用TrueZip時,即使不使用它,而需要使用truezip的路徑風格,也需要導入java.nio.paths。

確保您包含所有正確的依賴關係。我假設你使用的搖籃,所以依賴會是這個樣子:

'de.schlichtherle.truezip:truezip-file:7.7.9' 

我處理了類似的錯誤在使用Maven Java項目進口的依賴。試試這些東西並提供你的Java版本。

相關問題