Я пытаюсь редактировать содержимое файла odt с помощью zip4j (я пытался использовать 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();
}