【问题标题】:reading/extracting a self extracting zip in JAVA在 JAVA 中读取/提取自解压 zip
【发布时间】:2012-07-03 00:50:02
【问题描述】:

我正在尝试使用 java 代码读取自解压 zip(位于此处 ftp://ftp.dnr.state.oh.us/OilGas/Download/Production/By_Year/2010Production.exe)。

我尝试了三种方法,How can I read from a Winzip self-extracting (exe) zip file in Java?提到的一种方法

第二个是下载exe文件并将其重命名为zip(认为作弊可能有效)然后尝试阅读它......他们都没有工作。

最后一个使用 7-ZIP LZMA SDK,同样没用

另外,我查看了 Internet 上的其他几个资源,但没有任何用处。有人可以帮我吗?

【问题讨论】:

    标签: java zip self-extracting


    【解决方案1】:

    TrueZip 在这种情况下效果最好。 (至少在我的情况下)

    自解压 zip 的格式为 code1 header1 file1(而普通 zip 的格式为 header1 file1)...该代码说明了如何提取 zip

    虽然 Truezip 提取实用程序抱怨多余的字节并抛出异常

    这里是代码

     private boolean Extract(String src, String dst, String incPath) {
    
    
        TFile srcFile = new TFile(src, incPath);
        TFile dstFile = new TFile(dst);
        try {
            TFile.cp_rp(srcFile, dstFile, TArchiveDetector.NULL);
        } catch (IOException e) {
           return true;
        }
    
        return true;
    }
    

    你可以像 Extract(new String("C:\2006Production.exe"), new String("c:\") , ""); 那样调用这个方法

    你可以从这里http://repo1.maven.org/maven2/de/schlichtherle/truezip/truezip-samples/7.5.5/truezip-samples-7.5.5-jar-with-dependencies.jar下载Truezip源文件包(jar)

    您需要在代码中导入类。

    导入 de.schlichtherle.truezip.file.TArchiveDetector; 导入 de.schlichtherle.truezip.file.TFile;

    文件被解压到c盘...你可以对你的文件执行你自己的操作。我希望这会有所帮助。

    谢谢。

    【讨论】:

      【解决方案2】:

      Apache Commons Compress 支持这个。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多