FileChooser 仅适用于当前项目中的单个目录

FileChooser only for single directories in current project

我正在开发 IntelliJ-IDEA 插件。

我正在尝试 select 当前项目中的单个目录,使用它们的 FileChooser 类。

这是我目前的情况:

public class MyAction extends AnAction {
    public void actionPerformed(AnActionEvent actionEvent) {
        com.intellij.openapi.project.Project project = actionEvent.getProject();
        final DataContext dataContext = actionEvent.getDataContext();
        assert project != null;
        final PsiFile currentFile = DataKeys.PSI_FILE.getData(dataContext);
        VirtualFile chooseFile = project.getBaseDir();
        if (currentFile != null) {
            chooseFile = currentFile.getVirtualFile();
        }
        FileChooserDescriptor descriptor = FileChooserDescriptorFactory.createSingleFolderDescriptor();
        chooseFile = FileChooser.chooseFile(descriptor, project, chooseFile);
        if (chooseFile == null) {
            return;
        }
        ... do stuff with the file
    }
}

我想限制FileChooser只显示当前IDEA项目中的文件。 FileChooser 应该要么使 select 无法执行任何其他操作,要么在用户执行 select 其他操作时显示错误。有办法吗?

您可能会想做这样的事情:

descriptor.setRoots(ProjectRootManager.getInstance(project).getContentRoots());