test/jdk/tools/jpackage/helpers/JPackageHelper.java
branchJDK-8200758-branch
changeset 57241 e11f3bf34083
parent 57151 38d0b67617e3
child 57314 23da9e6f446f
--- a/test/jdk/tools/jpackage/helpers/JPackageHelper.java	Wed Feb 27 20:45:51 2019 -0500
+++ b/test/jdk/tools/jpackage/helpers/JPackageHelper.java	Fri Mar 01 08:27:51 2019 -0500
@@ -22,11 +22,15 @@
  */
 
 import java.io.File;
+import java.io.IOException;
 import java.io.PrintWriter;
 import java.io.StringWriter;
+import java.nio.file.FileVisitResult;
 
 import java.nio.file.Files;
 import java.nio.file.Path;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -149,6 +153,47 @@
         return command;
     }
 
+    private static void deleteRecursive(File path) throws IOException {
+        if (!path.exists()) {
+            return;
+        }
+
+        Path directory = path.toPath();
+        Files.walkFileTree(directory, new SimpleFileVisitor<Path>() {
+            @Override
+            public FileVisitResult visitFile(Path file,
+                    BasicFileAttributes attr) throws IOException {
+                if (OS.startsWith("win")) {
+                    Files.setAttribute(file, "dos:readonly", false);
+                }
+                Files.delete(file);
+                return FileVisitResult.CONTINUE;
+            }
+
+            @Override
+            public FileVisitResult preVisitDirectory(Path dir,
+                    BasicFileAttributes attr) throws IOException {
+                if (OS.startsWith("win")) {
+                    Files.setAttribute(dir, "dos:readonly", false);
+                }
+                return FileVisitResult.CONTINUE;
+            }
+
+            @Override
+            public FileVisitResult postVisitDirectory(Path dir, IOException e)
+                    throws IOException {
+                Files.delete(dir);
+                return FileVisitResult.CONTINUE;
+            }
+        });
+    }
+
+    public static void deleteOutputFolder(String output) throws IOException {
+        File outputFolder = new File(output);
+        System.out.println("AMDEBUG output: " + outputFolder.getAbsolutePath());
+        deleteRecursive(outputFolder);
+    }
+
     public static String executeCLI(boolean retValZero, String... args) throws Exception {
         int retVal;
         File outfile = new File("output.log");