TrueZip не может извлечь файл из архива
Я создаю Java-приложение, которое будет извлекать встроенный эскиз внутри документа Powerpoint (PPTX). Поскольку файлы pptx являются zip-архивами, я пытаюсь использовать TrueZip, чтобы получить миниатюру, найденную внутри архива. К сожалению, всякий раз, когда я пытаюсь запустить свое приложение, оно выдает IOException, утверждая, что файл отсутствует C:\Users\test-user\Desktop\DocumentsTest\Hello.pptx\docProps\thumbnail.jpeg (missing file)
Ниже приведен код, который я использую, чтобы получить эскиз:
public Boolean GetThumbPPTX(String inFile, String outFile)
{
try
{
TFile srcFile = new TFile(inFile, "docProps\\thumbnail.jpeg");
TFile dstFile = new TFile(outFile);
if(dstFile.exists())
dstFile.delete();
srcFile.toNonArchiveFile().cp_rp(dstFile);
return dstFile.exists();
} catch (IOException ex) {
Logger.getLogger(DocumentThumbGenerator.class.getName()).log(Level.SEVERE, null, ex);
}
return false;
}
куда inFile
это абсолютный путь к файлу pptx и outFile
путь, в который будет скопирована миниатюра. Я могу проверить, что архив имеет миниатюру внутри по тому же точному пути.
Может кто-нибудь помочь, пожалуйста?
1 ответ
Я только что нашел ответ. Кажется, у меня не был настроен драйвер Zip. Я добавил это в свой конструктор класса, и теперь все работает:
TConfig.get().setArchiveDetector(new TArchiveDetector(
TArchiveDetector.NULL,
new Object[][] {
{ "zip|pptx", new ZipDriver(IOPoolLocator.SINGLETON)},
}));