1

给定输入的字符串,如何在我的 sd 卡上搜索文件?

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

testfile.txt

filetest.jpg

thisisatestfile.xml

等等

4

2 回答 2

5

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

在您的 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. 您将需要获取要搜索的最顶层目录。因为,如果从 /(root)开始搜索,会浪费太多资源。最好从 /sdcard 开始(或任何顶级用户数据目录)
  2. 您将遍历它下面的所有目录,最好是递归的。
  3. 存储与您的搜索条件匹配的每个文件名
  4. 完成后,对结果做任何你想做的事情。
于 2012-12-21T13:14:26.663 回答