MCPcopy
hub / github.com/arduino/Arduino / deflate

Method deflate

app/src/processing/app/tools/ZipDeflater.java:30–68  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

28 }
29
30 public void deflate() throws IOException {
31 String tmpFolderName = folderNameFromZip() + random.nextInt(1000000);
32
33 File tmpFolder = new File(destFolder, tmpFolderName);
34
35 if (!tmpFolder.mkdir()) {
36 throw new IOException("Unable to create folder " + tmpFolderName);
37 }
38
39 Enumeration<? extends ZipEntry> entries = zipFile.entries();
40 while (entries.hasMoreElements()) {
41 ZipEntry entry = entries.nextElement();
42 ensureFoldersOfEntryExist(tmpFolder, entry);
43 File entryFile = new File(tmpFolder, entry.getName());
44 if (entry.isDirectory()) {
45 entryFile.mkdir();
46 } else {
47 FileOutputStream fos = null;
48 InputStream zipInputStream = null;
49 try {
50 fos = new FileOutputStream(entryFile);
51 zipInputStream = zipFile.getInputStream(entry);
52 byte[] buffer = new byte[1024 * 4];
53 int len = -1;
54 while ((len = zipInputStream.read(buffer)) != -1) {
55 fos.write(buffer, 0, len);
56 }
57 } finally {
58 IOUtils.closeQuietly(fos);
59 IOUtils.closeQuietly(zipInputStream);
60 }
61 }
62 }
63
64 deleteUndesiredFoldersAndFiles(tmpFolder);
65
66 // Test.zip may or may not contain Test folder. If it does, we keep it. If not, we use zip name.
67 ensureOneLevelFolder(tmpFolder);
68 }
69
70 private void deleteUndesiredFoldersAndFiles(File folder) {
71 for (File file : folder.listFiles()) {

Calls 8

folderNameFromZipMethod · 0.95
ensureOneLevelFolderMethod · 0.95
getInputStreamMethod · 0.80
getNameMethod · 0.65
readMethod · 0.45
writeMethod · 0.45