code: public static Promise<Void> createDirectories(Executor executor, Path dir, FileAttribute... attrs) {
  		return ofBlockingRunnable(executor, () -> {
  			try {
  				Files.createDirectories(dir, attrs);
  			} catch (IOException e) {
  				throw new UncheckedException(e);
  			}
  		});
  	}
docs: Creates a directory by creating all nonexistent parent directories first.
  
  @param executor executor for running tasks in other thread
  @param dir      the directory to create
  @param attrs    an optional list of file attributes to set atomically when creating the directory