TrueZip无法从存档中提取文件

时间:2015-09-02 06:33:02

标签: java 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 个答案:

答案 0 :(得分:1)

我刚刚找到答案。好像我没有正确配置Zip驱动程序。我将它添加到我的类构造函数中,现在一切正常:

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