【发布时间】:2020-02-04 14:48:29
【问题描述】:
我正在尝试使用 zip4j 编辑 odt 文件的内容(我尝试使用 java ZipEntries,但我什至无法从文件本身中删除条目,这就是我选择使用库的原因)。我可以确认我试图覆盖的文件退出了,我什至可以从中读取并告诉它何时创建,以便该部分工作。现在,当我尝试编辑 odt 内容(删除或覆盖)时,Zip4j 会抛出一个 ZipException,上面写着:无法重命名修改后的 zip 文件。我做错了什么?
try
{
File temp = new File(f.getParent()+"/tmp/content.xml");
new File(temp.getParent()).mkdirs();
FileUtils.write(temp, "", encoding);
net.lingala.zip4j.ZipFile zf = new net.lingala.zip4j.ZipFile(f.getPath());
ZipParameters p = new ZipParameters();
p.setEncryptionMethod(EncryptionMethod.NONE);
p.setOverrideExistingFilesInZip(true);
p.setFileNameInZip("content.xml");
p.setCompressionMethod(CompressionMethod.DEFLATE);
zf.addFile(temp, p);
}
catch (Exception e)
{
e.printStackTrace();
}
【问题讨论】:
-
使用标准 java SE 的 zip 文件系统也是可能的。
-
很遗憾,这不起作用。我遇到了与上面提到的相同的问题。我可以阅读,但似乎无法修改内容。