summaryrefslogtreecommitdiffstats
path: root/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/util/ZipUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/util/ZipUtils.java')
-rw-r--r--openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/util/ZipUtils.java44
1 files changed, 29 insertions, 15 deletions
diff --git a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/util/ZipUtils.java b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/util/ZipUtils.java
index 6447f85ea7..2f6693d133 100644
--- a/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/util/ZipUtils.java
+++ b/openecomp-be/tools/zusammen-tools/src/main/java/org/openecomp/core/tools/util/ZipUtils.java
@@ -10,12 +10,14 @@ import java.nio.file.Files;
import java.nio.file.Path;
import java.util.Objects;
import java.util.Scanner;
+import java.util.Set;
+import java.util.stream.Collectors;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.util.zip.ZipOutputStream;
public class ZipUtils {
- public static void createZip(String zipFileName, Path dir, String filterItem) throws Exception {
+ public static void createZip(String zipFileName, Path dir, Set<String> filterItem) throws Exception {
File dirObj = dir.toFile();
try (
FileOutputStream fileOutputStream = new FileOutputStream(zipFileName);
@@ -24,29 +26,34 @@ public class ZipUtils {
}
}
- public static final String cleanStr(String inFilterStr) {
- if (Objects.isNull(inFilterStr)) {
- return inFilterStr;
- }
- Scanner scan = new Scanner(inFilterStr);
- while (scan.hasNextLine()) {
- inFilterStr = scan.nextLine().replaceAll("[^a-zA-Z0-9]", "");
- }
- return inFilterStr;
+ public static final Set<String> cleanStr(Set<String> inFilterStrs) {
+ return inFilterStrs.stream().map(inFilterStr -> {
+ if (Objects.isNull(inFilterStr)) {
+ return inFilterStr;
+ }
+ Scanner scan = new Scanner(inFilterStr);
+ while (scan.hasNextLine()) {
+ inFilterStr = scan.nextLine().replaceAll("[^a-zA-Z0-9]", "");
+ }
+ return inFilterStr;
+ }
+ ).collect(Collectors.toSet());
}
- static void addDir(File dirObj, ZipOutputStream out, String root, String filterItem) throws IOException {
+ static void addDir(File dirObj, ZipOutputStream out, String root, Set<String> filterItem) throws IOException {
File[] files = dirObj.listFiles();
filterItem = cleanStr(filterItem);
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
addDir(files[i], out, root, filterItem);
+ String filePath = files[i].getAbsolutePath().replace(root + File.separator, "") + "/";
+ out.putNextEntry(new ZipEntry(filePath));
continue;
}
try (FileInputStream in = new FileInputStream((files[i].getAbsolutePath()))) {
String filePath = files[i].getAbsolutePath().replace(root + File.separator, "");
- if (filterItem == null || filePath.contains(filterItem)) {
+ if (filterItem.isEmpty() || filterItem.stream().anyMatch(s -> filePath.contains(s))) {
out.putNextEntry(new ZipEntry(filePath));
try {
ByteStreams.copy(in, out);
@@ -74,9 +81,16 @@ public class ZipUtils {
while (ze != null) {
String fileName = ze.getName();
File newFile = new File(outputFolder.toString() + File.separator + fileName);
- new File(newFile.getParent()).mkdirs();
- try (FileOutputStream fos = new FileOutputStream(newFile)) {
- ByteStreams.copy(zis, fos);
+ if (ze.isDirectory()) {
+ Path path = newFile.toPath();
+ if (!Files.exists(path)) {
+ Files.createDirectories(path);
+ }
+ } else {
+ new File(newFile.getParent()).mkdirs();
+ try (FileOutputStream fos = new FileOutputStream(newFile)) {
+ ByteStreams.copy(zis, fos);
+ }
}
ze = zis.getNextEntry();
}