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
18
19
20 public class BackupPictureFiles {
21
22
23
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
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
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
100 zipOutputStream.putNextEntry(new ZipEntry(filename));
101
102
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 }