我正在编写Intellij扩展,因此我需要知道特定虚拟文件的类文件的位置。我按以下方式加载虚拟文件:
public void actionPerformed(AnActionEvent e) {
if (e.getProject() == null) return;
FileEditorManager manager = FileEditorManager.getInstance(e.getProject());
VirtualFile files[] = manager.getSelectedFiles();
//Any files open?
if (files.length == 0 || !files[0].getPath().toLowerCase().endsWith(".java"))
return;
analyse(files[0]);
}
在analyze-function中,我想以gui。
显示类文件的内容是否可以从j给定的java文件或psi-tree接收类文件?
答案 0 :(得分:1)
您可以使用FilenameIndex.getFilesByName()
方法获取.class文件。由于您知道.java文件的名称,因此可以使用它来派生.class文件名。
但我不认为它会起作用,因为.class文件在目标目录中,而IDEA不会索引该目录。您可以使用VfsUtil.collectChildrenRecursively()
方法获取目标目录中的文件,然后过滤掉所需的.class文件。