@NotNull List<VirtualFile> getFiles(@NotNull VirtualFile dir) {
    assertThreadIfNeeded();
    ApplicationManager.getApplication().assertReadAccessAllowed();

    List<VirtualFile> filesList = new ArrayList<>();
    collectFiles(dir, filesList);
    return Collections.unmodifiableList(filesList);
  }
@NotNull List<VirtualFile> getFiles(@NotNull VirtualFile dir)