@Override
      public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
        if (callback != null) callback.accept(file);
        Path copy = file == from ? to : to.resolve(from.relativize(file));
        Files.copy(file, copy, LinkOption.NOFOLLOW_LINKS, StandardCopyOption.COPY_ATTRIBUTES);
        return FileVisitResult.CONTINUE;
      }
@Override
      public FileVisitResult visitFile(Path file, BasicFileAttributes attrs)