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)},
            }));
Другие вопросы по тегам