[Android] アンドロイド端末内のファイル検索

スマホ内のファイルを探し出したいときがあると思います。MediaStoreの画像などはコンテンツプロバイダーで検索できますが、特定のファイル検索はどうするのかと調べてみました。
 
device 2016 12 21 212701 170x300 - [Android] アンドロイド端末内のファイル検索

Android Studio 3.0.1
Android 8.1.0

 



ファイルパス検索

 
この方法はフォルダーにあるファイルを一個づつ確認するとてもベタなやり方ですが、ある意味どのようにでも使えます。
また、読出しが可能な範囲に限定され、更にストレージ内を読むのでREAD_EXTERNAL_STORAGEが必要となり、Android 6.0 Runtime Permissionに該当します。Permission checkが必要となります。

検索のやり方は

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

以下はお決まりの READ_EXTERNAL_STORAGE に関係するpermission checkとなります。
permissionが許可されたならば次のActivityに飛んで検索処理をします。

MainActivity.java

 
ここからが本番です
SearchPath.java

 
レイアウトです、スクロールできるようにしておきました。
activity_main.xml

 
READ_EXTERNAL_STORAGEとAcivityを追加しておきます
AndroidManifest.xml

 
検索する項目を自由に変更して、目的に合わせてファイル検索できますが、
ルート直下だと 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).

だそうです。

誤字脱字、意味不明で分からにゃイ、
などのご意見はこちらから mailフォーム

ブックマークしておくと便利です このエントリーをはてなブックマークに追加

アプリ開発が上達するお勧め

アプリ開発を始めたけどわからないところがあり、誰かに聞きたいけど周りにはそんな人はいない…あるいは、会社で働いていて日中そんなに時間をとれないなど、オンラインのプログラミングスクールがいいでしょう。

オンラインスクールは色々ありますが、以下の3つはAndroidが学習できる老舗スクールです。


TECH ACADEMY
Androidアプリコース


こういうものではアプリ作れないと言う意見もありますが、それは結局本人のやる気があるかないかです。やる気があっても独学では突破しにくいところは教えてもらうのが一番早い。


侍エンジニア塾
侍エンジニア塾 無料体験レッスン


とても簡単なことなのに本やネットの画像だけでは分かりにくいことはあります。実際に質問してピンポイントで教えてもらうと、なんだそんなこと、と言うのがけっこうあります。


CodeCamp
~約8,000名の受講生と80社以上の導入実績~
現役エンジニアのオンライン家庭教師CodeCamp




直接(ネットで)誰か分かる人に聞いた方が早く解決して、上達も早いと思います。


Google Pixel 4 / 4 XL
Android 10 搭載


シェアする

  • このエントリーをはてなブックマークに追加

フォローする