Browse Source

loading into tmp works

Teh-Hai Julian Zheng 7 years ago
parent
commit
5a68f4cc73
2 changed files with 19 additions and 2 deletions
  1. 19 1
      src/ui/controller/LoadController.java
  2. 0 1
      src/ui/controller/StoreController.java

+ 19 - 1
src/ui/controller/LoadController.java

@@ -4,21 +4,27 @@ import java.awt.Color;
 import java.awt.Point;
 import java.io.File;
 import java.io.FileInputStream;
+import java.io.FileOutputStream;
 import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.OutputStream;
 import java.nio.file.Files;
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
 import java.util.stream.Collectors;
 import java.util.zip.ZipException;
+import java.util.zip.ZipInputStream;
 
 import org.apache.commons.compress.archivers.ArchiveEntry;
 import org.apache.commons.compress.archivers.ArchiveException;
 import org.apache.commons.compress.archivers.ArchiveInputStream;
 import org.apache.commons.compress.archivers.ArchiveStreamFactory;
+import org.apache.commons.compress.archivers.zip.ZipArchiveEntry;
+import org.apache.commons.compress.utils.IOUtils;
 
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
@@ -108,6 +114,9 @@ public class LoadController {
 		File src = new File(path);
 		File folder = readArchive(path, src);
 		folder.deleteOnExit();
+		for (File file : Arrays.asList(folder.listFiles())) {
+			System.out.println(file.getName());
+		}
 
 	}
 
@@ -129,15 +138,24 @@ public class LoadController {
 
 	private File readArchive(String path, File src) throws IOException, ArchiveException {
 		File tmp = Files.createTempDirectory("tmpHolon").toFile();
-
+		tmp.deleteOnExit();
 		InputStream input = new FileInputStream(src);
 		ArchiveInputStream stream = new ArchiveStreamFactory().createArchiveInputStream(ArchiveStreamFactory.ZIP,
 				input);
 
 		ArchiveEntry entry = stream.getNextEntry();
 		while (entry != null) {
+			File file = new File(tmp, entry.getName());
+			file.getParentFile().mkdirs();
+			OutputStream output = new FileOutputStream(file);
+			IOUtils.copy(stream, output);
+			output.close();
+			// file.createNewFile();
 			entry = stream.getNextEntry();
 		}
+		
+		stream.close();
+		input.close();
 
 		return tmp;
 	}

+ 0 - 1
src/ui/controller/StoreController.java

@@ -267,7 +267,6 @@ public class StoreController {
 
 		File images = new File(System.getProperty("user.home") + "/HolonGUI/Images");
 		File background = new File(System.getProperty("user.home") + "/HolonGUI/BackgroundImages");
-		System.out.println(images.getCanonicalPath());
 		addFilesToSave(images, stream);
 		addFilesToSave(background, stream);