1

入力した文字列を指定して、SD カード上のファイルを検索するにはどうすればよいですか?

「test」を検索して、名前に文字列「test」を含むすべてのファイルのリストを取得したい:

testfile.txt

filetest.jpg

thisisatestfile.xml

4

2 に答える 2

5

FileFilterを渡してApache Commons IOListFiles()を使用できます。RegexFileFilter

Android プロジェクトで Commons IO jar ライブラリを使用する例:

Collection<File> files = FileUtils.listFiles(
                            Environment.getExternalStorageDirectory(),
                            new RegexFileFilter(".*test.*"),
                            TrueFileFilter.TRUE);

for(File f : files){
  //---do something---
}

また、このコードを別のスレッドで実行し、使用を検討してAsyncTaskください。

于 2012-12-21T13:18:02.980 に答える
3
  1. 検索する最上位のディレクトリを取得する必要があります。/ (ルート) から検索を開始すると、リソースを浪費しすぎるためです。/sdcard (またはその最上位のユーザー データ ディレクトリ) から開始することをお勧めします。
  2. その下にあるすべてのディレクトリを、できれば再帰的にループします。
  3. 検索条件に一致する各ファイル名を保存します
  4. 終了したら、結果に対してやりたいことを何でもしてください。
于 2012-12-21T13:14:26.663 に答える