code: public static void eachDirRecurse(final Path self, @ClosureParams(value = SimpleType.class, options = "java.nio.file.Path") final Closure closure) throws IOException { //throws FileNotFoundException, IllegalArgumentException {
          eachFileRecurse(self, FileType.DIRECTORIES, closure);
      }
docs: Recursively processes each descendant subdirectory in this directory.
  Processing consists of calling <code>closure</code> passing it the current
  subdirectory and then recursively processing that subdirectory.
  Regular files are ignored during traversal.
  
  @param self    a Path (that happens to be a folder/directory)
  @param closure a closure
  @throws java.io.FileNotFoundException if the given directory does not exist
  @throws IllegalArgumentException      if the provided Path object does not represent a directory
  @see #eachFileRecurse(Path, groovy.io.FileType, groovy.lang.Closure)
  @since 2.3.0