Java удалить ZipEntry

1

сначала я должен сказать, что я уже смотрел в internet/stackoverflow, но решения не работали для меня, потому что я новичок в Java и не понимаю слишком сложного кода.

Я хочу удалить запись (папку) внутри файла *.jar. Есть ли простой способ справиться с этим, например:

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

Если его невозможно удалить ZipEntry, как я могу переименовать папку внутри файла *.jar?

С наилучшими пожеланиями

Теги:
jar
zip

2 ответа

2

Я боюсь, что нет способа удалить или переименовать ZipEntry внутри ZipFile. Вам нужно будет создать новый ZipFile, скопируйте ZipEntries ommiting, который вы хотите удалить.

  • 0
    И нет никакого способа переименовать файл внутри ZipFile? Это было бы альтернативным решением для моей проблемы?
  • 0
    Боюсь, что нет @ user3430746
Показать ещё 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
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню