Можно ли извлечь большой файл с помощью Truezip в Java? - PullRequest
2 голосов
/ 13 декабря 2011
import java.io.IOException;
import utils.myDate;
import utils.myLog;
import de.schlichtherle.truezip.file.TArchiveDetector;
import de.schlichtherle.truezip.file.TFile;

public class Main 
{
    /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub

    Extract(new String("C:/Documents and Settings/mitracomm/My Documents/Downloads/JAR"), new String("D:/Source/Extract Result") , "");     
}

private static void 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.ALL);
    } catch (IOException e) {
        myLog.add(myDate.today("yyyyMMdd") + ".log", "error", e.getMessage());
    }
}

Будет ли вышеуказанный код работать с большим архивом?Кроме того, как я могу извлечь каждый архив в каталоге без необходимости заполнять incPath или указывать имя архива?Я пытался сделать это, но в итоге я получаю копии всех архивов из исходного каталога, а не извлеченных файлов.

1 Ответ

4 голосов
/ 14 декабря 2011

Код в принципе нормальный, но я буду использовать:

public class Main {
    public static void main(String[] args) {
        Extract(new String("C:/Documents and Settings/mitracomm/My Documents/Downloads/JAR"), new String("D:/Source/Extract Result") , "");        
    }

    private static void 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) {
            // I don't like logging for this purpose, but if you must...
            myLog.add(myDate.today("yyyyMMdd") + ".log", "error", e.getMessage());
        }
    }
}

Я не уверен, что вам действительно нужны три аргумента для метода Extract.

И, наконец,, да TrueZIP правильно обрабатывает ZIP-файлы размером более 4 ГБ.

...