2011-08-12 9 views
7

私はfileBrowserを使用して電話機のファイルを探していますが、私のアプリがユーザーに開くことができるすべてのファイルを表示してから、ユーザーが選択します。音楽プレーヤーのように、それは携帯電話、SDカード、および内蔵メモリにあるすべての曲を、ユーザーがいるフォルダ内の曲だけでなく、すべて表示します。Androidで特定の拡張子を持つすべてのファイルを見つける方法は?

答えて

8

ファイルを一覧表示する際にファイル名フィルタを使用してください。以下のサンプル(注 - 以下のコードはrootの下にあるすべてのフォルダに対して再帰的にそれをしない) - 指定したrootディレクトリ内のすべてのmp3ファイルを一覧表示します

String files[] = root.list(audioFilter); 

FilenameFilter audioFilter = new FilenameFilter() { 
    File f; 
    public boolean accept(File dir, String name) { 
    if(name.endsWith(".mp3") || name.endsWith(".MP3")) { 
      return true; 
     } 
     f = new File(dir.getAbsolutePath()+"/"+name); 

     return f.isDirectory(); 
    } 
}; 
+0

ありがとうございました。今私は、サブフォルダ内のすべてのファイルを取得するためにこれをしようとしている、それは時間の問題です。 –

+0

私は文字列のチェックがより良いはずだと思います:name.length()> = 4 && name.subString(name.length-4).toLowerCase()。equals( ".mp3")、 。理由は、あなたはこの方法で2回以上文字列を移動する必要はないということです。 –

1

使用しているFileBrowserの実装がわかりませんが、良いものはFileFilterを受け入れる必要があります。 public abstract boolean accept (File pathname)

+0

ラヴィは速かったが、あなたのおかげでへ。 –

関連する問題