void (List<VFileEvent> events, NewVirtualFile parent, String childName, FileAttributes attributes, @Nullable String symlinkTarget) { if (LOG.isTraceEnabled()) { LOG.trace("create parent=" + parent + " name=" + childName + " attr=" + attributes); } ChildInfo[] children = null; if (attributes.isDirectory() && !attributes.isSymLink() && parent.getFileSystem() instanceof LocalFileSystem) { try { Path childPath = getChildPath(parent.getPath(), childName); if (childPath != null && shouldScanDirectory(parent, childPath, childName)) { List<Path> relevantExcluded = ContainerUtil.mapNotNull(ProjectManagerEx.getInstanceEx().getAllExcludedUrls(), url -> { Path path = Path.of(VirtualFileManager.extractPath(url)); return path.startsWith(childPath) ? path : null; }); var t = System.nanoTime(); children = scanChildren(childPath, relevantExcluded, parent); myIoTime.addAndGet(System.nanoTime() - t); } } catch (InvalidPathException e) { LOG.warn("Invalid child name: '" + childName + "'", e); } } events.add(new VFileCreateEvent(myRequestor, parent, childName, attributes.isDirectory(), attributes, symlinkTarget, children)); VFileEvent event = VirtualDirectoryImpl.generateCaseSensitivityChangedEventForUnknownCase(parent, childName); if (event != null) { events.add(event); } }