我正在开发一个IntelliJ-IDEA插件。
我正在尝试使用他们的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应该使其无法选择任何其他内容,或者如果用户确实选择了其他内容则显示错误。有没有办法做到这一点?
答案 0 :(得分:1)
你可能想要做这样的事情:
descriptor.setRoots(ProjectRootManager.getInstance(project).getContentRoots());