[Android] ファイル検索

端末内のファイル検索

スマホ内のファイルを探し出したいときがあると思います
例えば、Galleryは画像を自動で検索して表示してくれます
特定のファイル検索はどうするのかと調べてみました。

  1. java.io.File クラスのメソッド list() を使って
    ディレクトリに含まれるファイル、ディレクトリのリストアップをする
  2. subFile.isDirectory()
    リストされた物がディレクトリかファイルか確認
  3. subFile.getName().endsWith(fileType)
    ファイルの拡張子がpngかどうか

外部ストレージ内の png ファイルを検索する例

Pathを自由に変更して、目的に合わせてファイル検索できますが、
ルート直下だと Permission でブロックされるディレクトリが多いので注意

File file = Environment.getExternalStorageDirectory();
として外部ストレージ内の検索をしています
といってもAndroid4以降はSDカードを指していません、

スマホ内部のメモリ領域の外部ストレージを指しているケースが多いでしょう。

Google developer: Using the External Storage 
In this case, the SD card is not part of the external storage and your app cannot access it (the extra storage is intended only for user-provided media that the system scans).

だそうです。