2011-07-04 7 views
4

일종의 파일 변경을 감지하고 다른 형식으로 변환하는 간단한 아이디어 플러그인을 만들고 싶습니다.Intellij-idea의 파일 변경을 감지하는 방법은 무엇입니까?

현재, 나는이 일을 같은 코드를 사용 :

VirtualFileManager.getInstance().addVirtualFileListener(new VirtualFileAdapter() { 
    @Override 
    public void contentsChanged(VirtualFileEvent event) { 
     // do something 
    } 
}); 

그것은 작동하지만 효율적이지 않습니다. VFS 이벤트를 수신 할 수

가장 효율적인 방법은 BulkFileListener 인터페이스를 구현하고 VirtualFileManager.VFS_CHANGES 항목을 함께 가입하는 것입니다

나는 this article 말한다 발견했다.

그러나 구현할 예는 찾을 수 없습니다. 그렇게하는 방법?

답변

7

나는 지금 당신이 발견 한 것이다 대답을 생각하지만, 다른 사람이이 내용은 저장하지 모든 행동을 감지이

public class A implements ApplicationComponent, BulkFileListener { 

    private final MessageBusConnection connection; 

    public A() { 
     connection = ApplicationManager.getApplication().getMessageBus().connect(); 
    } 

    public void initComponent() { 
     connection.subscribe(VirtualFileManager.VFS_CHANGES, this); 
    } 

    public void disposeComponent() { 
     connection.disconnect(); 
    } 

    public void before(List<? extends VFileEvent> events) { 
     // ... 
    } 

    public void after(List<? extends VFileEvent> events) { 
     // ... 
    } 

    ... 
} 
+0

처럼 작동하는 것 같다 –

관련 문제