Question

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

Will the above code work with a large archive? Also, how can I extract every archive in a directory without having to fill the incPath or specify archives' name? I have tried to do this but I end up with copies of all the archives from origin directory and not extracted files.

Was it helpful?

Solution

The code is principally OK, but I'ld use:

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

I'm not sure if you really want three arguments for the Extract method, though.

And finally, yes TrueZIP handles ZIP files beyond 4GB size correctly.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top