Java Recursively Delete a Directory

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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;
  }
}