[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 3 XLグローバル版
SIMフリー 並行輸入品
6.3インチの大画面
背景をぼかすポートレートモード撮影


Anker PowerCore II Slim 10000
Power IQ 2.0搭載
iPhone & Android対応

シェアする

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

フォローする