The root is deleted in postVisitDirectory by a call to Files.delete(dir). Once the walking of the file tree has completed Files.deleteIfExists(root) is called and its result is returned. This result is always false due to the earlier File.delete(dir) call.
Affects: 5.0 RC3
#20400 FileSystemUtils.copyRecursively no longer replaces existing files
#20304 Revise FileSystemResource / FileSystemUtils / FileCopyUtils towards NIO.2