简体   繁体   中英

TrueZip unable to extract file from archive

I am creating a java app that will extract the embedded thumbnail inside of a Powerpoint (PPTX) document. Since pptx files are zip archives, I am trying to use TrueZip to get the thumbnail found inside of the archive. Unfortunately whenever I try running my application it throws an IOException stating that the file is missing C:\\Users\\test-user\\Desktop\\DocumentsTest\\Hello.pptx\\docProps\\thumbnail.jpeg (missing file)

Below is the code I use to get the thumbnail:

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;
}

Where inFile is the absolute path of the pptx file and outFile is the path that the thumbnail will be copied to. I can verify that the archive does have a thumbnail inside of it at the same exact path.

Can someone help please?

I just found the answer. It seems I did not have the Zip driver configured correctly. I added this to my class constructor and it all works now:

TConfig.get().setArchiveDetector(new TArchiveDetector(
            TArchiveDetector.NULL,
            new Object[][] {                
                { "zip|pptx", new ZipDriver(IOPoolLocator.SINGLETON)},
            }));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM