我想以某种方式将文件添加到内部zip条目中。 以下zip文件的结构如下所示:
输入zip文件
|-- directory/
| |-- zipfile.zip -
| | |-- files.txt - *How can i get these entries to my zipfile.zip*
| | |-- files.txt
这只是一小块zip文件。我浏览zip文件并检查条目是否包含更多文件。到目前为止我做了什么
段的
private void handleZipFile(ZipFile input) throws IOException {
input.stream()
.forEach(entry -> {
try {
InputStream in = input.getInputStream(entry);
ZipInputStream zis = new ZipInputStream(in);
zos.putNextEntry(new ZipEntry(entry.getName()));
handleInnerZipEntry(entryName, zis, zos);
zos.closeEntry();
in.close();
zis.close();
zos.flush();
} catch (IOException e) {
e.printStackTrace());
}
}
);
zos.close();
}
handleInnerZip
private void handleInnerZipEntry(String entryPath, ZipInputStream in, ZipOutputStream out) throws IOException {
try {
ZipEntry entry = in.getNextEntry();
while (entry != null) {
out.putNextEntry(new ZipEntry(entry.getName())); // Need to put files.txt files
if (entry.getSize() > 0 && entry.getName().endsWith("zip")) {
ZipInputStream recursiveIn = new ZipInputStream(in);
ZipOutputStream recursiveOut = new ZipOutputStream(out);
handleInnerZipEntry(entryPath, recursiveIn, recursiveOut);
recursiveOut.flush();
} else if (entry.getSize() > 0 && !(entry.isDirectory())) {
}
in.closeEntry();
entry = in.getNextEntry();
}
} catch (IOException e) {
CustomLogger.error("IOException: " + e.getLocalizedMessage());
}
}
答案 0 :(得分:0)
问题是(如果我理解正确的话)Zip格式不允许,你想要实现的目标(参见https://en.wikipedia.org/wiki/Zip_(file_format)#Structure)。
您必须使用扩充内容创建新的zip文件。此外,可能重复this SO。