diff --git a/src/org/dclermonte/siba/model/SibaManager.java b/src/org/dclermonte/siba/model/SibaManager.java index 96b6652..f9e9d8e 100644 --- a/src/org/dclermonte/siba/model/SibaManager.java +++ b/src/org/dclermonte/siba/model/SibaManager.java @@ -21,9 +21,7 @@ package org.dclermonte.siba.model; import java.io.BufferedOutputStream; import java.io.File; -import java.io.FileInputStream; import java.io.FileOutputStream; -import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.io.OutputStream; @@ -32,7 +30,6 @@ import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.ResourceBundle; -import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream; import org.apache.commons.compress.utils.IOUtils; @@ -104,9 +101,9 @@ public class SibaManager gzipOutputStream = new GzipCompressorOutputStream( new BufferedOutputStream(new FileOutputStream(result))); out = new TarArchiveOutputStream(gzipOutputStream); - directoryToSave(fileToSave, out, pathLength); + SibaUtils.tarDirectoryTree(fileToSave, out, pathLength); out.close(); - fileWithMD5(result, target + "/" + outputFileNameWithoutExtension + ".tgz.md5"); + createMD5File(result, target + "/" + outputFileNameWithoutExtension + ".tgz.md5"); } } catch (IOException ioExceptionBackup) @@ -140,7 +137,7 @@ public class SibaManager try { String md5String = SibaUtils.loadMD5Sum(choosenFile); - File fileToCheck1 = loadFileToCheck(choosenFile); + File fileToCheck1 = SibaUtils.loadFileToCheck(choosenFile); if (StringUtils.equals(md5String, SibaUtils.md5(fileToCheck1))) { result = true; @@ -162,50 +159,6 @@ public class SibaManager return result; } - /** - * - * This method generates ArchiveEntry. - * - * @param directory - * @param outputStream - * @param pathLength - * @throws IOException - */ - public static void directoryToSave(final File directory, final TarArchiveOutputStream outputStream, - final int pathLength) throws IOException - { - for (File file : directory.listFiles()) - { - - if (file.isDirectory()) - { - if (file.listFiles().length == 0) - { - TarArchiveEntry tarArchiveEntry = new TarArchiveEntry(file); - String pathPartiel = file.getPath().substring(pathLength); - tarArchiveEntry.setName(pathPartiel); - outputStream.putArchiveEntry(tarArchiveEntry); - outputStream.closeArchiveEntry(); - } - else - { - directoryToSave(file, outputStream, pathLength); - } - - } - else - { - TarArchiveEntry tarArchiveEntry = new TarArchiveEntry(file); - String pathPartiel = file.getPath().substring(pathLength); - tarArchiveEntry.setName(pathPartiel); - outputStream.putArchiveEntry(tarArchiveEntry); - IOUtils.copy(new FileInputStream(file), outputStream); - outputStream.closeArchiveEntry(); - - } - } - } - /** * * This method Generate the file with MD5. @@ -216,7 +169,7 @@ public class SibaManager * @throws IOException * @throws NoSuchAlgorithmException */ - public static File fileWithMD5(final File directoryToSave, final String destination) + public static File createMD5File(final File directoryToSave, final String destination) throws IOException, NoSuchAlgorithmException { File result; @@ -225,51 +178,13 @@ public class SibaManager FileWriter fileWriter = new FileWriter(result); fileWriter.write(SibaUtils.md5(directoryToSave)); String newLine = System.getProperty("line.separator"); - fileWriter.append(" " + directoryToSave.getName() + newLine); + fileWriter.append(" "); + fileWriter.append(directoryToSave.getName()); + fileWriter.append(newLine); fileWriter.close(); // return result; } - /** - * - * @param choosenFile - * @return - * @throws IOException - */ - public static File loadFileToCheck(final File choosenFile) throws IOException - { - File result = null; - if (choosenFile.exists() && (choosenFile.length() > 32)) - { - FileReader fileReader = new FileReader(choosenFile); - // BufferedReader bufferedReader = new BufferedReader(fileReader); - // String line = bufferedReader.readLine(); - char[] fileToCheck = new char[(int) (choosenFile.length()) - 32]; - fileReader.read(); - fileReader.skip(32); - String fileNameToString = new String(); - for (int index = 36; index < (choosenFile.length() + 2); index++) - { - fileToCheck[index - 36] = (char) fileReader.read(); - fileNameToString = fileNameToString + fileToCheck[index - 36]; - } - - fileReader.close(); - if (choosenFile.isAbsolute()) - { - result = new File(choosenFile.getParent() + "/" + fileNameToString); - } - else - { - String path = System.getProperty("user.dir"); - result = new File(path + "/" + fileNameToString); - } - } - // - - return result; - } - } diff --git a/src/org/dclermonte/siba/model/SibaUtils.java b/src/org/dclermonte/siba/model/SibaUtils.java index bebd394..9de0f9b 100644 --- a/src/org/dclermonte/siba/model/SibaUtils.java +++ b/src/org/dclermonte/siba/model/SibaUtils.java @@ -26,10 +26,52 @@ import java.io.IOException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; +import org.apache.commons.compress.archivers.tar.TarArchiveEntry; +import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; import org.apache.commons.compress.utils.IOUtils; public class SibaUtils { + /** + * + * @param choosenFile + * @return + * @throws IOException + */ + public static File loadFileToCheck(final File choosenFile) throws IOException + { + File result = null; + if (choosenFile.exists() && (choosenFile.length() > 32)) + { + FileReader fileReader = new FileReader(choosenFile); + // BufferedReader bufferedReader = new BufferedReader(fileReader); + // String line = bufferedReader.readLine(); + char[] fileToCheck = new char[(int) (choosenFile.length()) - 32]; + fileReader.read(); + fileReader.skip(32); + String fileNameToString = new String(); + for (int index = 36; index < (choosenFile.length() + 2); index++) + { + fileToCheck[index - 36] = (char) fileReader.read(); + fileNameToString = fileNameToString + fileToCheck[index - 36]; + } + + fileReader.close(); + if (choosenFile.isAbsolute()) + { + result = new File(choosenFile.getParent() + "/" + fileNameToString); + } + else + { + String path = System.getProperty("user.dir"); + result = new File(path + "/" + fileNameToString); + } + } + // + + return result; + } + /** * * @param choosenFile @@ -108,4 +150,48 @@ public class SibaUtils // return result; } + + /** + * + * This method generates ArchiveEntry. + * + * @param directory + * @param outputStream + * @param pathLength + * @throws IOException + */ + public static void tarDirectoryTree(final File directory, final TarArchiveOutputStream outputStream, + final int pathLength) throws IOException + { + for (File file : directory.listFiles()) + { + + if (file.isDirectory()) + { + if (file.listFiles().length == 0) + { + TarArchiveEntry tarArchiveEntry = new TarArchiveEntry(file); + String pathPartiel = file.getPath().substring(pathLength); + tarArchiveEntry.setName(pathPartiel); + outputStream.putArchiveEntry(tarArchiveEntry); + outputStream.closeArchiveEntry(); + } + else + { + tarDirectoryTree(file, outputStream, pathLength); + } + + } + else + { + TarArchiveEntry tarArchiveEntry = new TarArchiveEntry(file); + String pathPartiel = file.getPath().substring(pathLength); + tarArchiveEntry.setName(pathPartiel); + outputStream.putArchiveEntry(tarArchiveEntry); + IOUtils.copy(new FileInputStream(file), outputStream); + outputStream.closeArchiveEntry(); + + } + } + } }