void (@NonNls @NotNull String libDirPath, @NotNull List<VirtualFile> result, @NonNls final String @NotNull ... forbidden) { Arrays.sort(forbidden); final String path = libDirPath + File.separator + LIB_DIR_NAME; final JarFileSystem jfs = JarFileSystem.getInstance(); final File lib = new File(path); if (lib.isDirectory()) { File[] jars = lib.listFiles(); if (jars != null) { for (File jar : jars) { @NonNls String name = jar.getName(); if (jar.isFile() && Arrays.binarySearch(forbidden, name) < 0 && (name.endsWith(".jar") || name.endsWith(".zip"))) { VirtualFile file = jfs.findFileByPath(jar.getPath() + JarFileSystem.JAR_SEPARATOR); LOG.assertTrue(file != null, jar.getPath() + " not found"); result.add(file); } } } } }