Android:如何在SD卡上搜索文件?

时间:2012-12-21 13:10:05

标签: android list search sd-card

如果输入的字符串,如何在我的SD卡上搜索文件?

我想搜索“test”,并希望获得一个列表,其中包含名称中包含字符串“test”的所有文件:

testfile.txt

filetest.jpg

thisisatestfile.xml

2 个答案:

答案 0 :(得分:5)

您可以使用ListFiles() Apache Commons IO,传递RegexFileFilter FileFilter。

在Android项目中使用Commons IO jar库的示例:

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

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

此外,在单独的线程中运行此代码,请考虑使用AsyncTask

答案 1 :(得分:3)

  1. 您需要获取要搜索的最顶层目录。因为,如果从/(root)开始搜索,则会浪费太多资源。最好从/ sdcard开始(或者不是那个顶级用户数据目录)
  2. 你将遍历它下面的所有目录,最好是递归。
  3. 存储符合搜索条件的每个文件名
  4. 完成后,做任何你想做的事情。