Java Recursively Delete a Directory

From NovaOrdis Knowledge Base
Jump to navigation Jump to search

External

Internal

Overview

Files.walk(configFrameworkRoot.toPath())
         .sorted(Comparator.reverseOrder())
         .map(Path::toFile)
         .forEach(File::delete);

TODO: convert to Java.

def static deleteDirectoryRecursively(def pipeline, String d) {
    File df = new File(d)
    String[] files = df.list()
    for(String s: files) {
        File f = new File(d, s)
        if (f.isDirectory()) {
            deleteDirectoryRecursively(pipeline, f.getPath())
        }
        else {
            if (f.delete()) pipeline.print "deleted ${f}"
        }
    }
    if (df.delete()) pipeline.print "deleted ${df}"
}

Remove a Directory in a Junit Test

private Path testDirectory;

@Before
public void setUp() throws Exception {

   testDirectory = Files.createTempDirectory("test");
}

@After
public void cleanup() throws Exception {

  if (testDirectory != null) {

     Files.walk(testDirectory)
          .sorted(Comparator.reverseOrder())
          .map(Path::toFile)
          .forEach(File::delete);

     assertFalse(Files.exists(testDirectory));
     testDirectory = null;
  }
}