【问题标题】:Intellij IDEA plugin how to get path of currently opened file?Intellij IDEA 插件如何获取当前打开文件的路径?
【发布时间】:2020-05-10 23:03:58
【问题描述】:

我已经试过了:

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

但这只会获取文件名。

【问题讨论】:

标签: java intellij-idea intellij-plugin


【解决方案1】:

这可能是因为您收到了一个LightVirtualFile,它并不驻留在内存中。试试这个:

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

getOriginalFile 返回一个代表物理文件的PsiFile 对象(如果不在内存中,则返回 null)。如果您不确定文件是否真的在您的文件系统中,请先检查getOriginalFile 的结果是否为空。

参考this discussion

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多