private static boolean iterateAll(
     @NotNull VirtualFile[] files,
     @NotNull final GlobalSearchScope searchScope,
     @NotNull final ContentIterator iterator) {
   final FileTypeManager fileTypeManager = FileTypeManager.getInstance();
   final VirtualFileFilter contentFilter =
       new VirtualFileFilter() {
         @Override
         public boolean accept(@NotNull final VirtualFile file) {
           return file.isDirectory()
               || !fileTypeManager.isFileIgnored(file)
                   && !file.getFileType().isBinary()
                   && searchScope.contains(file);
         }
       };
   for (VirtualFile file : files) {
     if (!VfsUtilCore.iterateChildrenRecursively(file, contentFilter, iterator)) return false;
   }
   return true;
 }