VirtualFile.getChildren()이 사용된 경우를 보고합니다.
이는 순환 심볼릭 링크를 반복 처리할 때 무한 루프를 야기할 수 있습니다.
대신 VfsUtilCore.visitChildrenRecursively()를 사용하세요.
void processDirectory(VirtualFile dir) {
for (VirtualFile file : dir.getChildren()) { // 나쁨
if (!file.isDirectory()) {
processFile(file);
} else {
processDirectory(file); // 재귀 호출
}
}
}
void processDirectory(VirtualFile dir) {
VfsUtilCore.visitChildrenRecursively(dir, new VirtualFileVisitor<Void>() { // 좋음
@Override
public boolean visitFile(@NotNull VirtualFile file) {
if (!file.isDirectory()) {
processFile(file);
}
return true;
}
});
}