Intellij Idea Plugin获取虚拟文件的类文件

问题描述 投票:0回答:1

我正在写一个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接收类文件?

java intellij-idea intellij-plugin
1个回答
1
投票

您可以使用FilenameIndex.getFilesByName()方法获取.class文件。由于您知道.java文件的名称,因此可以使用它来派生.class文件名。

但我认为它不会起作用,因为.class文件位于目标目录中,而IDEA不会索引该目录。您可以使用VfsUtil.collectChildrenRecursively()方法获取目标目录中的文件,然后过滤掉所需的.class文件。

© www.soinside.com 2019 - 2024. All rights reserved.