Eclipse プラグイン - ファイル移動時のリソース変更イベント

フォルダ間やプロジェクト間でファイルを移動した場合に特定の処理を行なう必要がある場合、リソース変更イベントのフラグ値を調べることで、移動を感知することができます。

ファイル移動の場合、IResourceChangeEvent.ADDED と IResourceChangeEvent.REMOVED イベントが発生します。
このとき、IResourceDelta#getFlags メソッドの戻り値に IResourceDelta.MOVED_FROM や IResourceDelta.MOVED_TO で示されるビットがセットされているかどうかを調べることによりファイルの移動を認識することができます。これらのフラグは通常のファイル追加や削除の場合はセットされず、ファイルの移動(ファイル名の変更も含む)の場合にのみ設定されます。
また、IResourceDelta.MOVED_FROM フラグが設定されている場合は IResourceDelta#getMovedFromPath メソッドによって移動元のパスが、IResourceDelta.MOVED_TO フラグが設定されている場合は IResourceDelta#getMovedToPath メソッドによって移動先のパスが取得されます。