我正在尝试使用 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();
}