This commit is contained in:
bm01
2012-05-01 01:32:50 +02:00
parent ca1954ff80
commit 18c52a5e23
5 changed files with 75 additions and 82 deletions

View File

@ -15,57 +15,55 @@ import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
public class ZipLibrary {
private static String BackupDirectory = mcMMO.mainDirectory + "backup";
private static File BackupDir = new File(BackupDirectory);
private static File FlatFileDirectory = new File(mcMMO.flatFileDirectory);
private static File UsersFile = new File(mcMMO.usersFile);
private static File ConfigFile = new File(mcMMO.mainDirectory + "config.yml");
private static File Leaderboards = new File(mcMMO.leaderboardDirectory);
public static void mcMMObackup() throws IOException {
try {
if (BackupDir.mkdir()) { mcMMO.p.getLogger().info("Created Backup Directory."); }
} catch (Exception h) {
mcMMO.p.getLogger().severe(h.toString());
}
//Generate the proper date for the backup filename
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
File fileZip = new File(BackupDirectory + File.separator + dateFormat.format(date) + ".zip");
//Create the Source List, and add directories/etc to the file.
List<File> sources = new ArrayList<File>();
sources.add(FlatFileDirectory);
sources.add(UsersFile);
sources.add(ConfigFile);
sources.add(Leaderboards);
//Actually do something
System.out.println("Backing up your mcMMO Configuration... ");
packZip(fileZip, sources);
}
private static void packZip(File output, List<File> sources) throws IOException
private static String BackupDirectory = mcMMO.mainDirectory + "backup";
private static File BackupDir = new File(BackupDirectory);
private static File FlatFileDirectory = new File(mcMMO.flatFileDirectory);
private static File UsersFile = new File(mcMMO.usersFile);
private static File ConfigFile = new File(mcMMO.mainDirectory + "config.yml");
private static File Leaderboards = new File(mcMMO.leaderboardDirectory);
public static void mcMMObackup() throws IOException {
if (BackupDir.mkdir()) {
try {
mcMMO.p.getLogger().info("Created Backup Directory.");
} catch (Exception e) {
mcMMO.p.getLogger().severe(e.toString());
}
}
//Generate the proper date for the backup filename
Date date = new Date();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
File fileZip = new File(BackupDirectory + File.separator + dateFormat.format(date) + ".zip");
//Create the Source List, and add directories/etc to the file.
List<File> sources = new ArrayList<File>();
sources.add(FlatFileDirectory);
sources.add(UsersFile);
sources.add(ConfigFile);
sources.add(Leaderboards);
//Actually do something
System.out.println("Backing up your mcMMO Configuration... ");
packZip(fileZip, sources);
}
private static void packZip(File output, List<File> sources) throws IOException
{
ZipOutputStream zipOut = new ZipOutputStream(new FileOutputStream(output));
zipOut.setLevel(Deflater.DEFAULT_COMPRESSION);
for (File source : sources) {
if (source.isDirectory()) {
zipDir(zipOut, "", source);
} else {
}
else {
zipFile(zipOut, "", source);
}
}
zipOut.flush();
zipOut.close();
System.out.println("Backup Completed.");
@ -74,7 +72,8 @@ public class ZipLibrary {
private static String buildPath(String path, String file) {
if (path == null || path.isEmpty()) {
return file;
} else {
}
else {
return path + "/" + file;
}
}
@ -91,11 +90,11 @@ public class ZipLibrary {
for (File source : files) {
if (source.isDirectory()) {
zipDir(zos, path, source);
} else {
}
else {
zipFile(zos, path, source);
}
}
}
private static void zipFile(ZipOutputStream zos, String path, File file) throws IOException {
@ -103,13 +102,13 @@ public class ZipLibrary {
System.out.println("Cannot read " + file.getCanonicalPath() + "(File Permissions?)");
return;
}
zos.putNextEntry(new ZipEntry(buildPath(path, file.getName())));
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[4092];
int byteCount = 0;
while ((byteCount = fis.read(buffer)) != -1) {
zos.write(buffer, 0, byteCount);
}
@ -117,6 +116,4 @@ public class ZipLibrary {
fis.close();
zos.closeEntry();
}
}