Java delete ZipEntry



首先我不得不说,我已经在internet/stackoverflow中看过了,但是解决方案不适合我,因为我是Java新手,不理解太复杂的代码。

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

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

如果它不可能删除一个ZipEntry,我怎么能重命名一个文件夹在*.jar文件?

恐怕没有办法删除或重命名ZipFile中的ZipEntry。您必须创建一个新的ZipFile,复制提交您想要删除的ZipEntries。

您将能够使用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
}

最新更新