@Override
 public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs)
     throws IOException {
   DcFile file = (DcFile) attrs;
   // Groups can only contain other groups. If we are searching groups, accept the group,
   // otherwise, continue
   if (file.getType() instanceof GroupType) {
     if (filter.searchGroups() && filter.matcher.matches(dir)) {
       accept(file);
     }
     return FileVisitResult.SKIP_SUBTREE;
   }
   folderStack.add(file);
   return FileVisitResult.CONTINUE;
 }