@Override
      public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
        String name = dir == root ? prefix : entryName(dir);
        if (name.isEmpty()) {
          return FileVisitResult.CONTINUE;
        }
        else if (accept(name, dir)) {
          if (traceEnabled) LOG.trace("  " + dir + " -> " + name + '/');
          writeDirectoryEntry(name, timestampMs == -1 ? attrs.lastModifiedTime().toMillis() : timestampMs);
          return FileVisitResult.CONTINUE;
        }
        else {
          return FileVisitResult.SKIP_SUBTREE;
        }
      }
@Override
      public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs)