View Javadoc

1   /**
2    * 
3    */
4   package de.tivsource.page.admin.backup;
5   
6   import java.io.File;
7   import java.io.FileInputStream;
8   import java.io.FileOutputStream;
9   import java.io.IOException;
10  import java.util.zip.ZipEntry;
11  import java.util.zip.ZipOutputStream;
12  
13  import org.apache.logging.log4j.LogManager;
14  import org.apache.logging.log4j.Logger;
15  
16  /**
17   * @author Marc Michele
18   *
19   */
20  public class BackupPictureFiles {
21  
22      /**
23       * Statischer Logger der Klasse.
24       */
25      private static final Logger LOGGER = LogManager.getLogger(BackupPictureFiles.class);
26  
27      private static byte[] buffer = new byte[1024];
28  
29      public static File getZipFile() throws IOException {
30          LOGGER.info("getZipFile() aufgerufen.");
31  
32          // Zip-Datei erstellen und Stream bereitstellen.
33          File zipFile = File.createTempFile("tivpage_pictures", "zip");
34          ZipOutputStream outZipFile = new ZipOutputStream(new FileOutputStream(zipFile));
35  
36          String picturePath = "/var/www/html/pictures/";
37          String picturePathFULL = picturePath + "FULL/";
38          String picturePathLARGE = picturePath + "LARGE/";
39          String picturePathNORMAL = picturePath + "NORMAL/";
40          String picturePathTHUMBNAIL = picturePath + "THUMBNAIL/";
41  
42          outZipFile.putNextEntry(new ZipEntry("pictures/"));
43  
44          outZipFile.putNextEntry(new ZipEntry("pictures/FULL/"));
45          File folderFULL = new File(picturePathFULL);
46          File[] listOfFilesFULL = folderFULL.listFiles();
47          LOGGER.debug("Anzahl der Dateien: " + listOfFilesFULL.length);
48          for (int i = 0; i < listOfFilesFULL.length; i++) {
49          	if (listOfFilesFULL[i].isFile()) {
50                  LOGGER.debug("Füge die Datei " + listOfFilesFULL[i].getName() + " zur Zip-Datei hinzu.");
51                  addData(listOfFilesFULL[i], outZipFile, "pictures/FULL/" + listOfFilesFULL[i].getName());
52          	}
53          }
54  
55          outZipFile.putNextEntry(new ZipEntry("pictures/LARGE/"));
56          File folderLARGE = new File(picturePathLARGE);
57          File[] listOfFilesLARGE = folderLARGE.listFiles();
58          LOGGER.debug("Anzahl der Dateien: " + listOfFilesLARGE.length);
59          for (int i = 0; i < listOfFilesLARGE.length; i++) {
60          	if (listOfFilesLARGE[i].isFile()) {
61                  LOGGER.debug("Füge die Datei " + listOfFilesLARGE[i].getName() + " zur Zip-Datei hinzu.");
62                  addData(listOfFilesLARGE[i], outZipFile, "pictures/LARGE/" + listOfFilesLARGE[i].getName());
63          	}
64          }
65          
66          outZipFile.putNextEntry(new ZipEntry("pictures/NORMAL/"));
67          File folderNORMAL = new File(picturePathNORMAL);
68          File[] listOfFilesNORMAL = folderNORMAL.listFiles();
69          LOGGER.debug("Anzahl der Dateien: " + listOfFilesNORMAL.length);
70          for (int i = 0; i < listOfFilesNORMAL.length; i++) {
71          	if (listOfFilesNORMAL[i].isFile()) {
72                  LOGGER.debug("Füge die Datei " + listOfFilesNORMAL[i].getName() + " zur Zip-Datei hinzu.");
73                  addData(listOfFilesNORMAL[i], outZipFile, "pictures/NORMAL/" + listOfFilesNORMAL[i].getName());
74          	}
75          }
76  
77          outZipFile.putNextEntry(new ZipEntry("pictures/THUMBNAIL/"));
78          File folderTHUMBNAIL = new File(picturePathTHUMBNAIL);
79          File[] listOfFilesTHUMBNAIL = folderTHUMBNAIL.listFiles();
80          LOGGER.debug("Anzahl der Dateien: " + listOfFilesTHUMBNAIL.length);
81          for (int i = 0; i < listOfFilesTHUMBNAIL.length; i++) {
82          	if (listOfFilesTHUMBNAIL[i].isFile()) {
83                  LOGGER.debug("Füge die Datei " + listOfFilesTHUMBNAIL[i].getName() + " zur Zip-Datei hinzu.");
84                  addData(listOfFilesTHUMBNAIL[i], outZipFile, "pictures/THUMBNAIL/" + listOfFilesTHUMBNAIL[i].getName());
85          	}
86          }
87  
88  
89          // Schließe die Zip-Datei.
90          outZipFile.close();
91  
92          return zipFile;
93      }
94  
95      private static void addData(File file, ZipOutputStream zipOutputStream, String filename) throws IOException {
96  
97          FileInputStream fileInputStream = new FileInputStream(file);
98  
99          // Ab hier beginnt der Exhibition Teil
100         zipOutputStream.putNextEntry(new ZipEntry(filename));
101 
102         // Transfer bytes from the file to the ZIP file
103         int len;
104         while ((len = fileInputStream.read(buffer)) > 0) {
105             zipOutputStream.write(buffer, 0, len);
106         }
107 
108         zipOutputStream.closeEntry();
109         fileInputStream.close();
110     }
111 
112     
113     
114 }// Ende class