Java删除ZipEntry

Java删除ZipEntry,java,jar,zip,Java,Jar,Zip,首先,我不得不说,我已经查看了internet/stackoverflow,但是这些解决方案对我来说不起作用,因为我是Java新手,不懂太复杂的代码 我想删除*.jar文件中的一个条目(文件夹)。 有没有一个简单的方法来处理这个问题,比如: ZipEntry entry = new ZipEntry("path\\File.jar\\Folder"); entry.delete(); 如果无法删除ZipEntry,如何重命名*.jar文件中的文件夹 致以最诚挚的问候恐怕没有办法删除或重命名Zi

首先,我不得不说,我已经查看了internet/stackoverflow,但是这些解决方案对我来说不起作用,因为我是Java新手,不懂太复杂的代码

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

ZipEntry entry = new ZipEntry("path\\File.jar\\Folder");
entry.delete();
如果无法删除ZipEntry,如何重命名*.jar文件中的文件夹


致以最诚挚的问候

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

您将能够使用Java7:Zip文件系统实现这一点

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
}
Map env=new HashMap();
环境put(“创建”、“假”);
URI=URI.create(“jar:file:///C:/codeSamples/zipfs/zipfstest.zip"); // 压缩文件路径
try(FileSystem-zipfs=FileSystems.newFileSystem(uri,env)){
Files.delete(zipfs.getPath(“/SomeTextFile.txt”);//zip中要删除的文件
}

而且也无法重命名ZipFile中的文件?这将是我问题的另一种解决方案??恐怕不是@user3430746我找到了一种使用Zip4j库()删除ZipEntry的方法。不幸的是,它不可能删除一个完整的文件夹(或者至少我没有找到方法删除),但它足以满足我的需要。不过还是谢谢你