Java删除ZipEntry

时间:2014-05-02 19:29:42

标签: java jar zip

起初我不得不说,我已经查看了internet / stackoverflow,但解决方案对我来说没有用,因为我是Java的新手并且不懂太复杂的代码。

我想删除* .jar文件中的条目(文件夹)。 有没有一种简单的方法来处理这个问题,例如:

ZipEntry entry = new ZipEntry("path\\File.jar\\Folder");
entry.delete();

如果无法删除ZipEntry,如何在* .jar文件中重命名文件夹?

祝你好运

2 个答案:

答案 0 :(得分:2)

我担心在ZipFile中没有删除或重命名ZipEntry的方法。您必须创建一个新的ZipFile,复制ZipEntries,省略您要删除的ZipEntries。

答案 1 :(得分:1)

您将能够使用Java 7实现此目的:Zip FileSystem

Map<String, String> env = new HashMap<>(); 
env.put("create", "false");

URI uri = URI.create("jar:file:///C:/codeSamples/zipfs/zipfstest.zip"); // Zip file path

try (FileSystem zipfs = FileSystems.newFileSystem(uri, env)) {
    Files.delete(zipfs.getPath("/SomeTextFile.txt")); // File inside zip to delete
}