init
This commit is contained in:
112
decompiled/anjocaido/minecraftmanager/Zipper.java
Normal file
112
decompiled/anjocaido/minecraftmanager/Zipper.java
Normal file
@@ -0,0 +1,112 @@
|
||||
/*
|
||||
* Decompiled with CFR 0.152.
|
||||
*/
|
||||
package anjocaido.minecraftmanager;
|
||||
|
||||
import java.io.BufferedInputStream;
|
||||
import java.io.BufferedOutputStream;
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.util.logging.Level;
|
||||
import java.util.logging.Logger;
|
||||
import java.util.zip.ZipEntry;
|
||||
import java.util.zip.ZipInputStream;
|
||||
import java.util.zip.ZipOutputStream;
|
||||
|
||||
public class Zipper {
|
||||
static final int BUFFER = 2048;
|
||||
|
||||
public static boolean zipFolders(File[] srcFolders, File destZipFile) {
|
||||
return Zipper.zipFolders(srcFolders, destZipFile, "");
|
||||
}
|
||||
|
||||
public static boolean zipFolders(File[] srcFolders, File destZipFile, String inFolderName) {
|
||||
try {
|
||||
Object origin = null;
|
||||
FileOutputStream dest = new FileOutputStream(destZipFile);
|
||||
ZipOutputStream out = new ZipOutputStream(new BufferedOutputStream(dest));
|
||||
for (File fileFolder : srcFolders) {
|
||||
if (Zipper.addToZip(fileFolder.getParentFile().getPath(), inFolderName, fileFolder.getName(), out)) continue;
|
||||
return false;
|
||||
}
|
||||
out.close();
|
||||
}
|
||||
catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
protected static boolean addToZip(String absolutePath, String relativePath, String fileName, ZipOutputStream out) {
|
||||
File file = new File(absolutePath + File.separator + fileName);
|
||||
System.out.println("Adding \"" + absolutePath + File.separator + fileName + "\" file");
|
||||
if (file.isHidden()) {
|
||||
return true;
|
||||
}
|
||||
if (file.isDirectory()) {
|
||||
absolutePath = absolutePath + File.separator + file.getName();
|
||||
relativePath = relativePath + File.separator + file.getName();
|
||||
for (String child : file.list()) {
|
||||
if (Zipper.addToZip(absolutePath, relativePath, child, out)) continue;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
try {
|
||||
int count;
|
||||
byte[] data = new byte[2048];
|
||||
FileInputStream fi = new FileInputStream(file);
|
||||
BufferedInputStream origin = new BufferedInputStream(fi, 2048);
|
||||
ZipEntry entry = new ZipEntry(relativePath + File.separator + fileName);
|
||||
out.putNextEntry(entry);
|
||||
while ((count = origin.read(data, 0, 2048)) != -1) {
|
||||
out.write(data, 0, count);
|
||||
}
|
||||
origin.close();
|
||||
}
|
||||
catch (Exception ex) {
|
||||
Logger.getLogger(Zipper.class.getName()).log(Level.SEVERE, null, ex);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public static boolean zipFolder(File srcFolder, File destZipFile) {
|
||||
File[] ar = new File[]{srcFolder};
|
||||
return Zipper.zipFolders(ar, destZipFile);
|
||||
}
|
||||
|
||||
public static void unzipFolder(File zipFile, File destFolder) {
|
||||
try {
|
||||
ZipEntry entry;
|
||||
BufferedOutputStream dest = null;
|
||||
FileInputStream fis = new FileInputStream(zipFile);
|
||||
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(fis));
|
||||
while ((entry = zis.getNextEntry()) != null) {
|
||||
int count;
|
||||
System.out.println("Extracting: " + entry);
|
||||
byte[] data = new byte[2048];
|
||||
File f = new File(destFolder + File.separator + entry.getName());
|
||||
if (f.getParentFile() != null && !f.getParentFile().exists()) {
|
||||
f.getParentFile().mkdirs();
|
||||
}
|
||||
if (!f.exists()) {
|
||||
f.createNewFile();
|
||||
f.getParent();
|
||||
}
|
||||
FileOutputStream fos = new FileOutputStream(f);
|
||||
dest = new BufferedOutputStream(fos, 2048);
|
||||
while ((count = zis.read(data, 0, 2048)) != -1) {
|
||||
dest.write(data, 0, count);
|
||||
}
|
||||
dest.flush();
|
||||
dest.close();
|
||||
}
|
||||
zis.close();
|
||||
}
|
||||
catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user