Я хотел бы рекурсивно прочитать zip-файл, а затем извлечь все файлы в отдельной папке.Как читать все файлы из zip-файла
Например, если some.zip
файл имеет следующее содержание:
file5.txt
somefolder
file.txt
file4.txt
inside.zip
file2.txt
file3.txt
То, что я хочу, это просто все файлы, включая все файлы в архивные файлы внутри архива (inside.zip
в приведенном выше примере).
конечный результат somefolder
будет все файлы (я не забочусь о структуре папок):
file5.txt
file.txt
file4.txt
file2.txt
file3.txt
Что я пробовал:
У меня есть код, приведенный ниже, но он поддерживает структура папок и не открывает файлы почтового индекса в файлах почтового индекса:
import java.util.zip.*
def extractZip (String zipFile) {
def zipIn = new File(zipFile)
def zip = new ZipFile(zipIn)
zip.entries().findAll { !it.directory }.each { e ->
(e.name as File).with{ f ->
f.parentFile?.mkdirs()
f.withOutputStream { w ->
w << zip.getInputStream(e)
}
}
}
}
вам нужно на самом деле проверить, что вы извлечения, например, 'if (файл извлекается = '.zip') {open (файл извлекается); } ' –
Что такое ZipFile? Это особый класс? –
@AlvinBunk import java.util.zip. * – Anthony