idea插件在不清楚当前文件所在哪个Project的情况下 获得当前文件VirtualFile
时间: 2024-02-23 12:00:38 浏览: 29
可以通过以下代码获得当前文件的 VirtualFile:
```java
VirtualFile currentFile = FileDocumentManager.getInstance().getFile(editor.getDocument());
```
其中,editor 是当前打开的编辑器实例。如果无法获取到 editor,可以通过以下代码获得当前活动的 Project:
```java
Project project = null;
if (e != null) {
project = e.getData(CommonDataKeys.PROJECT);
}
```
其中,e 是当前的 AnActionEvent 实例。获取到 Project 后,就可以通过 VirtualFileManager 来获取当前文件的 VirtualFile:
```java
VirtualFile currentFile = VirtualFileManager.getInstance().findFileByUrl("file://" + filePath);
```
其中,filePath 是当前文件的绝对路径。如果无法获取到绝对路径,也可以通过以下代码获得当前文件的 VirtualFile:
```java
VirtualFile currentFile = FileDocumentManager.getInstance().getFile(editor.getDocument());
```
这种方式可以在不清楚当前文件所在 Project 的情况下获取当前文件的 VirtualFile。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)