プロジェクトの中の values/strings.xml
や values-ja/strings.xml
を取得したい時、リソースディレクトリの場所を探してstrings.xmlを見つけるのは大変です。
そんなとき、FilenameIndex.getFilesByName(project, name, scope)
を使うと簡単に取得できます。
使い方は簡単で、Scopeをセットして呼び出すとPsiFileの配列が返ってきます。
PsiFile[] files = FilenameIndex.getFilesByName(project, "strings.xml", GlobalSearchScope.projectScope(project));
// values/strings.xmlとvalues-ja/strings.xmlがある場合、filesには2つのPsiFileが格納される
Scopeには、どの範囲を探すかをセットします。
例えば、 GlobalSearchScope.allScope(project)
をセットするとAndroidのフレームワークやLibraryの中にあるファイルも取得できます。
GlobalSearchScope.projectScope(project)
をセットすると、プロジェクト内のファイルのみ取得できます。