Intellij IDEA插件如何获取当前打开文件的路径?

Intellij IDEA plugin how to get path of currently opened file?

我已经试过了:

Document currentDoc = FileEditorManager.getInstance(project).getSelectedTextEditor().getDocument()
VirtualFile currentFile = FileDocumentManager.getInstance().getFile(currentDoc);
String fileName = currentFile.getPath();`

但这只能获取文件名。

发生这种情况可能是因为您收到的 LightVirtualFile 不在内存中。试试这个:

PsiFile psiFile = PsiDocumentManager.getInstance(project).getPsiFile(currentDoc);
VirtualFile vFile = psiFile.getOriginalFile().getVirtualFile();
String path = vFile.getPath();

getOriginalFile returns 表示物理文件的 PsiFile 对象(如果不在内存中则为 null)。如果您不确定该文件是否确实在您的文件系统中,请先检查 getOriginalFile 的结果是否为 null。

参考this discussion