refactor decompression

This commit is contained in:
Anthony Calosa
2021-04-17 03:27:46 +08:00
parent 15ba670d5a
commit fffd2afe5e
2 changed files with 7 additions and 14 deletions

View File

@@ -47,11 +47,6 @@
<version>4.1.48.Final</version> <version>4.1.48.Final</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.8.1</version>
</dependency>
<dependency> <dependency>
<groupId>org.apache.logging.log4j</groupId> <groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId> <artifactId>log4j-api</artifactId>

View File

@@ -9,9 +9,12 @@ import java.io.InputStream;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.nio.charset.Charset;
import java.util.Enumeration; import java.util.Enumeration;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
import com.esotericsoftware.minlog.Log; import com.esotericsoftware.minlog.Log;
import com.google.common.io.Files; import com.google.common.io.Files;
@@ -20,8 +23,6 @@ import forge.gui.FThreads;
import forge.gui.GuiBase; import forge.gui.GuiBase;
import forge.gui.interfaces.IProgressBar; import forge.gui.interfaces.IProgressBar;
import forge.util.FileUtil; import forge.util.FileUtil;
import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
import org.apache.commons.compress.archivers.zip.ZipFile;
public class GuiDownloadZipService extends GuiDownloadService { public class GuiDownloadZipService extends GuiDownloadService {
private final String name, desc, sourceUrl, destFolder, deleteFolder; private final String name, desc, sourceUrl, destFolder, deleteFolder;
@@ -171,16 +172,13 @@ public class GuiDownloadZipService extends GuiDownloadService {
} }
} }
final ZipFile zipFile = new ZipFile(zipFilename, null); //null uses FallbackZipEncoding final ZipFile zipFile = new ZipFile(zipFilename, Charset.forName("IBM437"));
final java.util.zip.ZipFile zipFile1 = new java.util.zip.ZipFile(zipFilename); //for getting the size/number of entries for progress bar final Enumeration<? extends ZipEntry> entries = zipFile.entries();
final Enumeration<? extends ZipArchiveEntry> entries = zipFile.getEntries();
progressBar.reset(); progressBar.reset();
progressBar.setPercentMode(true); progressBar.setPercentMode(true);
progressBar.setDescription("Extracting " + desc); progressBar.setDescription("Extracting " + desc);
progressBar.setMaximum(zipFile1.size()); progressBar.setMaximum(zipFile.size());
//close since we already get the number of entries...
zipFile1.close();
FileUtil.ensureDirectoryExists(destFolder); FileUtil.ensureDirectoryExists(destFolder);
@@ -190,7 +188,7 @@ public class GuiDownloadZipService extends GuiDownloadService {
if (cancel) { break; } if (cancel) { break; }
try { try {
final ZipArchiveEntry entry = entries.nextElement(); final ZipEntry entry = entries.nextElement();
final String path = destFolder + File.separator + entry.getName(); final String path = destFolder + File.separator + entry.getName();
if (entry.isDirectory()) { if (entry.isDirectory()) {